LDKRendererView
typedef struct LDKRendererView{
LDKRendererViewId id;
Mat4 view;
Mat4 projection;
Vec4 frustum_planes[6];
u32 width;
u32 height;
u32 requested_width;
u32 requested_height;
bool extent_override;
LDKRendererTarget target;
LDKRendererTarget overlay_target;
LDKRHITexture post_process_texture;
LDKRHIBindings post_process_bindings;
LDKRHITexture post_process_input_texture;
LDKRHITexture post_process_blurred_texture;
LDKRHITexture post_process_blur_textures[2];
LDKRHIBindings post_process_blur_bindings[2];
LDKRHITexture post_process_blur_input_textures[2];
LDKRHIFormat post_process_blur_format;
LDKRendererPostProcessing post_processing;
rgba32 clear_color;
bool clear_color_set;
bool separate_overlay;
Vec3 grid_center;
float grid_extent;
float grid_spacing;
bool grid_submitted;
LDKResourceSkybox skybox;
bool submitted;
bool frustum_valid;
}LDKRendererView;
LDKRendererViewId
typedef u64 LDKRendererViewId;
LDK_RENDERER_VIEW_ALL
#define LDK_RENDERER_VIEW_ALL((LDKRendererViewId)UINT64_MAX)
LDK_RENDERER_VIEW_INVALID
#define LDK_RENDERER_VIEW_INVALID((LDKRendererViewId)0)
ldk_renderer_game_resolution_set
Change the default game render-target resolution.
Views using the default game extent release their current render targets
when the dimensions change. Views with an explicit per-view extent are not
affected. New targets are created when those views are next submitted or
rendered.
LDK_API bool ldk_renderer_game_resolution_set(
LDKRenderer *renderer,
u32 width,
u32 height
);
Parameters
LDKRenderer *renderer
- Renderer instance.
u32 width
- New game render-target width in pixels.
u32 height
- New game render-target height in pixels.
Returns
true when the resolution is valid and was accepted.
ldk_renderer_game_view_set
Select the submitted view used as the game output.
The selected view is returned by ldk_renderer_game_texture_get() and is
presented directly when the renderer was configured with present_game.
The selection is transient and must be set again on every frame.
LDK_API bool ldk_renderer_game_view_set(
LDKRenderer *renderer,
LDKRendererViewId view_id
);
Returns
true if the submitted view exists, false otherwise.
ldk_renderer_submit_view
Submit a camera view used for scene rendering this frame.
The renderer stores the view and projection matrices as transient frame
state. Submitted meshes will be rendered using this view when
ldk_renderer_render_frame() is called.
The submitted view is consumed for the current frame only. After rendering,
the renderer clears the active view state.
LDK_API bool ldk_renderer_submit_view(
LDKRenderer *renderer,
LDKRendererViewId view_id,
Mat4 view,
Mat4 projection
);
Parameters
LDKRenderer *renderer
- Renderer instance.
LDKRendererViewId view_id
- Stable non-zero identifier supplied by the caller.
Mat4 view
- View matrix.
Mat4 projection
- Projection matrix.
Returns
true if the view was submitted, false otherwise.
ldk_renderer_view_bounds_visible
True when an AABB is visible to the selected submitted view. VIEW_ALL
tests every submitted view and succeeds when any view intersects it.
Invalid bounds or unavailable frusta fail open and return true.
LDK_API bool ldk_renderer_view_bounds_visible(
const LDKRenderer *renderer,
LDKRendererViewId view_id,
Vec3 bounds_min,
Vec3 bounds_max
);
Parameters
const LDKRenderer *renderer
- Renderer receiving this request.
LDKRendererViewId view_id
- Renderer view receiving this operation.
Vec3 bounds_min
- Bounds min used by this operation.
Vec3 bounds_max
- Bounds max used by this operation.
Returns
True if the operation succeeds; false otherwise.
ldk_renderer_view_clear_color_set
Override the clear color used by a submitted view this frame.
This is transient view state and must be set again after submit_view on
each frame. Alpha is preserved, allowing transparent camera backgrounds.
LDK_API bool ldk_renderer_view_clear_color_set(
LDKRenderer *renderer,
LDKRendererViewId view_id,
rgba32 clear_color
);
Returns
True if the operation succeeds; false otherwise.
ldk_renderer_view_extent_get
Get the effective extent that will be used by a renderer view.
Views without an explicit extent use the game resolution. For an explicit
view, this returns its requested extent, including a request that will be
applied by the next ldk_renderer_submit_view() call.
LDK_API bool ldk_renderer_view_extent_get(
LDKRenderer const *renderer,
LDKRendererViewId view_id,
u32 *out_width,
u32 *out_height
);
Parameters
LDKRenderer const *renderer
- Renderer instance.
LDKRendererViewId view_id
- View identifier. The view does not need to exist yet.
u32 *out_width
- Receives the effective width in pixels.
u32 *out_height
- Receives the effective height in pixels.
Returns
true when a valid effective extent was returned.
ldk_renderer_view_extent_set
Set the render-target extent requested for a view.
The request is applied the next time the view is submitted. Until then the
current render target remains unchanged, allowing editor resize operations
to defer GPU resource churn until interaction has finished.
LDK_API bool ldk_renderer_view_extent_set(
LDKRenderer *renderer,
LDKRendererViewId view_id,
u32 width,
u32 height
);
Parameters
LDKRenderer *renderer
- Renderer instance.
LDKRendererViewId view_id
- Identifier of an existing renderer view.
u32 width
- Requested render-target width in pixels.
u32 height
- Requested render-target height in pixels.
Returns
true when the request was accepted, false otherwise.
ldk_renderer_view_post_processing_set
Set post-processing configuration for a submitted view.
The configuration is transient and must be supplied again after the view is
submitted on each frame. Disabled post-processing bypasses the post-process
pass and exposes the scene color target directly.
LDK_API bool ldk_renderer_view_post_processing_set(
LDKRenderer *renderer,
LDKRendererViewId view_id,
LDKRendererPostProcessing const *post_processing
);
Returns
true when the configuration was accepted, false otherwise.