Skip to content
modkitv0.2

render_graph.h

#include <modkit/render_graph.h>10 functions · 3 structs · 5 typedefs · 3 macros

Optional ordered render graph orchestration over mk_pass_desc.

The render graph owns or imports named render targets and executes pass callbacks in registration order. Read/write declarations are validated and document dependencies; v1 does not reorder passes, alias resources, or impose renderer policy.

Functions

mk_graph_add_passfunction

mk_result mk_graph_add_pass(mk_render_graph_t graph, const mk_graph_pass_desc *desc)

Append an ordered pass declaration.

ParameterTypeDescription
graphmk_render_graph_tDestination graph.
descconst mk_graph_pass_desc *Pass descriptor.

Returns MK_SUCCESS or an error result.

mk_graph_add_targetfunction

mk_result mk_graph_add_target(mk_render_graph_t graph, const char *name, const mk_render_target_desc *desc)

Add a graph-owned named render target.

ParameterTypeDescription
graphmk_render_graph_tDestination graph.
nameconst char *Stable target name.
descconst mk_render_target_desc *Target descriptor.

Returns MK_SUCCESS or an error result.

mk_graph_destroyfunction

void mk_graph_destroy(mk_render_graph_t graph)

Destroy a graph and its graph-owned targets.

ParameterTypeDescription
graphmk_render_graph_tGraph to destroy.

mk_graph_executefunction

mk_result mk_graph_execute(mk_render_graph_t graph, void *frame_user_data)

Execute every registered pass in declaration order.

ParameterTypeDescription
graphmk_render_graph_tGraph to execute.
frame_user_datavoid *Per-execution user pointer forwarded to callbacks.

Returns MK_SUCCESS or an error result.

mk_graph_get_depth_texturefunction

mk_texture_t mk_graph_get_depth_texture(mk_render_graph_t graph, const char *name)

Look up the depth attachment on a named target.

ParameterTypeDescription
graphmk_render_graph_tGraph to query.
nameconst char *Target name.

Returns The depth texture handle, or an invalid handle when unavailable.

mk_graph_get_targetfunction

mk_render_target_t mk_graph_get_target(mk_render_graph_t graph, const char *name)

Look up a named render target.

ParameterTypeDescription
graphmk_render_graph_tGraph to query.
nameconst char *Target name.

Returns The target handle, or an invalid handle when absent.

mk_graph_get_texturefunction

mk_texture_t mk_graph_get_texture(mk_render_graph_t graph, const char *name, uint8_t attachment)

Look up a color attachment on a named target.

ParameterTypeDescription
graphmk_render_graph_tGraph to query.
nameconst char *Target name.
attachmentuint8_tColor attachment index.

Returns The texture handle, or an invalid handle when unavailable.

mk_graph_import_targetfunction

mk_result mk_graph_import_target(mk_render_graph_t graph, const char *name, mk_render_target_t target)

Import an externally owned named render target.

ParameterTypeDescription
graphmk_render_graph_tDestination graph.
nameconst char *Stable target name.
targetmk_render_target_tExisting target handle.

Returns MK_SUCCESS or an error result.

mk_graph_resizefunction

void mk_graph_resize(mk_render_graph_t graph)

Resize graph-owned relative-size targets to the current output.

ParameterTypeDescription
graphmk_render_graph_tGraph to update.

mk_render_graph_createfunction

mk_render_graph_t mk_render_graph_create(const mk_render_graph_desc *desc)

Create an empty ordered render graph.

ParameterTypeDescription
descconst mk_render_graph_desc *Optional creation options.

Returns A graph handle, or NULL on failure.

Structs

mk_graph_pass_ctxstruct

Runtime resources exposed while recording a graph pass.

FieldTypeDescription
graphmk_render_graph_tExecuting graph.
passconst mk_pass_desc *Resolved pass descriptor.
encodermk_encoder_tEncoder for pass draw commands.
viewmk_view_id_tView assigned to the pass.
targetmk_render_target_tResolved target, or the backbuffer handle.
widthuint16_tRender width in pixels.
heightuint16_tRender height in pixels.
graph_user_datavoid *User data from mk_render_graph_desc.
frame_user_datavoid *User data supplied to mk_graph_execute.
pass_user_datavoid *User data from mk_graph_pass_desc.

mk_graph_pass_descstruct

Declaration and callback for one ordered render-graph pass.

FieldTypeDescription
nameconst char *Pass name (optional).
targetconst char *Named target to render to; NULL = backbuffer.
passmk_pass_descBase pass descriptor; graph resolves target.
readsconst char *Named targets sampled/read.
read_countuint8_tNumber of valid entries in reads.
writesconst char *Named targets written.
write_countuint8_tNumber of valid entries in writes.
callbackmk_graph_pass_fnCalled inside mk_begin_pass/mk_end_pass.
user_datavoid *Pass-level user data forwarded to callback.

mk_render_graph_descstruct

Render-graph creation options.

FieldTypeDescription
nameconst char *Debug name (optional).
user_datavoid *Graph-level user data forwarded to callbacks.

Typedefs

mk_graph_pass_ctxtypedef

typedef struct mk_graph_pass_ctx mk_graph_pass_ctx

Context passed to a render-graph pass callback.

mk_graph_pass_desctypedef

typedef struct mk_graph_pass_desc mk_graph_pass_desc

Declaration and callback for one ordered render-graph pass.

mk_graph_pass_fntypedef

typedef void(*) mk_graph_pass_fn(const mk_graph_pass_ctx *ctx)

Record drawing commands for one graph pass.

mk_render_graph_desctypedef

typedef struct mk_render_graph_desc mk_render_graph_desc

Render-graph creation options.

mk_render_graph_ttypedef

typedef struct mk_render_graph* mk_render_graph_t

Opaque render-graph handle.

Macros

MK_GRAPH_MAX_DEPSdefine

MK_GRAPH_MAX_DEPS

Maximum declared reads or writes for one pass.

MK_GRAPH_MAX_PASSESdefine

MK_GRAPH_MAX_PASSES

Maximum passes in one render graph.

MK_GRAPH_MAX_TARGETSdefine

MK_GRAPH_MAX_TARGETS

Maximum named targets in one render graph.