Struct Program

Inheritance Relationships

Derived Type

Struct Documentation

struct Program

Mutable executable-program access on the backend owner/current context.

This legacy primitive interface does not provide immutable packet resolution.

See also

Rendering guide

Subclassed by CE::Rendering::OpenGL::Program

Public Functions

virtual ~Program() = default

Release the logical executable handle under its backend retirement contract.

virtual void bind_pass(const CE::Rendering::Parameters::PassSemantics &pass) = 0

Apply the backend’s mapped pass semantics.

Parameters:

pass – Copied projection/view values borrowed through this call. Requires live backend owner/current context; concrete mappings may omit roles unused by the program.

virtual void bind_draw(const CE::Rendering::Parameters::DrawSemantics &draw) = 0

Apply the backend’s mapped model, alpha, scale and legacy texture semantics.

Parameters:

draw – Stable values borrowed through this call. This mutates program state and performs no frame publication; backend errors may leave prior writes applied.

virtual void use() = 0

Select this executable on the backend owner/current context.

Retain the program and its original live resource domain through use.

virtual void set_uniform_value(const char *name, float value) = 0

Set one backend-named floating-point uniform on the live backend owner.

Parameters:
  • name – NUL-terminated backend uniform name borrowed only through this call.

  • value – Value copied into program state. Name/type validation and whether the program must already be selected belong to the backend; failure does not promise rollback of earlier writes.

virtual void set_uniform_value(const char *name, int value) = 0

Set one backend-named signed integer uniform on the live backend owner.

Parameters:
  • name – NUL-terminated backend uniform name borrowed only through this call.

  • value – Value copied into program state. Name/type validation and whether the program must already be selected belong to the backend; failure does not promise rollback of earlier writes.

virtual void set_uniform_value(const char *name, unsigned int value) = 0

Set one backend-named unsigned integer uniform on the live backend owner.

Parameters:
  • name – NUL-terminated backend uniform name borrowed only through this call.

  • value – Value copied into program state. Name/type validation and whether the program must already be selected belong to the backend; failure does not promise rollback of earlier writes.

virtual void set_uniform_value(const char *name, bool value) = 0

Set one backend-named boolean uniform on the live backend owner.

Parameters:
  • name – NUL-terminated backend uniform name borrowed only through this call.

  • value – Value copied into program state. Name/type validation and whether the program must already be selected belong to the backend; failure does not promise rollback of earlier writes.

virtual void set_uniform_matrix(const char *name, const glm::mat4 &value) = 0

Set one backend-named 4 by 4 matrix uniform.

Parameters:
  • name – NUL-terminated name borrowed through the call.

  • value – Matrix borrowed through the call; no live camera is retained. Requires the backend owner/current context. Concrete adapters define matrix upload/name validation and current-program requirements.