3#include "pixelbullet/private/graphics/rendering/buffers/buffer.h"
4#include "pixelbullet/private/graphics/rendering/buffers/uniform_handler.h"
5#include "pixelbullet/private/graphics/rendering/descriptors/descriptors_handler.h"
6#include "pixelbullet/private/graphics/runtime_support/images/image_2d.h"
7#include "pixelbullet/private/graphics/rendering/pipelines/pipeline_graphics.h"
8#include "pixelbullet/graphics/subrender.h"
9#include "pixelbullet/private/scene/rendering/render_resource_resolver.h"
10#include "pixelbullet/scene/render_data.h"
23struct SceneSpriteSubrenderImpl
27 std::shared_ptr<Image2D> texture;
30 SceneSpriteSubrenderImpl(
const Subrender::Stage& stage,
RenderDevice& render_device,
Filesystem& filesystem,
33 void EnsureSpriteCapacity(std::size_t sprite_count);
34 void InvalidateSlotState(std::size_t slot_index);
35 void ClearUnusedSlotState(std::size_t sprite_count);
39 RenderResourceResolver resource_resolver;
40 std::unique_ptr<Buffer> vertex_buffer;
41 PipelineGraphics pipeline;
42 UniformHandler scene_uniforms;
43 std::vector<UniformHandler> sprite_uniforms;
44 std::vector<DescriptorsHandler> sprite_descriptors;
45 std::vector<std::optional<ResolvedResources>> resolved_resources;
46 std::vector<std::optional<std::string>> slot_texture_paths;
49namespace scene_sprite_subrender_internal
51std::unique_ptr<SceneSpriteSubrenderImpl> CreateImpl(
const Subrender::Stage& stage,
RenderDevice& render_device,
Filesystem& filesystem,
53std::vector<std::size_t> CollectMatchingTextureSlotIndices(
const std::vector<std::optional<std::string>>& slot_texture_paths,
54 const std::vector<std::string>& changed_sprite_textures);
57std::size_t RefreshTextureCaches(
SceneSpriteSubrenderImpl& impl,
const std::vector<std::string>& changed_sprite_textures);
Definition filesystem.h:16
Definition render_device.h:15
Definition render_frame_context.h:17
Definition resource_cache.h:16
Definition render_data.h:117
Definition scene_sprite_subrender_internal.h:26
Definition scene_sprite_subrender_internal.h:24