|
Cogs.Core
|
Public Member Functions | |
| SpriteRenderSystem (Memory::Allocator *allocator, SizeType capacity) | |
| void | initialize (Context *context) override |
| Initialize the system. | |
| void | preUpdate (Context *context) override |
| Provided for custom pre update logic in derived systems. | |
| void | postUpdate (Context *context) override |
| ComponentHandle | createComponent () override |
| void | destroyComponent (ComponentHandle component) override |
| SpriteMaterialKey | registerSpriteMaterial (MaterialHandle material) |
| SpriteBatch * | begin (SpriteMaterialKey material, const StringView &permutation, TextureHandle texture, glm::vec4 color, bool alwaysOnTop=false) |
| SpriteBatch * | begin (SpriteMaterialKey material, const StringView &postfix, PositionMode positionMode, SizeMode sizeMode, TextureHandle texture, glm::vec4 color, bool alwaysOnTop=false) |
| SpriteBatch * | begin (SpriteMaterialKey material, TextureHandle texture, glm::vec4 color) |
| SpriteBatch * | begin (TextureHandle texture, glm::vec4 color) |
| void | addSprite (SpriteRenderComponent *spriteRenderer, glm::vec3 position, glm::vec2 size, glm::vec4 texCoords) |
| void | addSprite (SpriteRenderComponent *spriteRenderer, glm::vec3 position, glm::vec2 offset, glm::vec2 size, glm::vec4 texCoords) |
| const SpriteBatch * | getSpriteBatch (SpriteBatchIndex index) const |
| std::span< const SpriteBatch > | getSpriteBatches () const |
Public Member Functions inherited from Cogs::Core::ComponentSystemWithDataPool< SpriteRenderComponent, SpriteRenderData > | |
| ComponentSystemWithDataPool (Memory::Allocator *allocator, SizeType size=1024) | |
| SpriteRenderData & | getData (const SpriteRenderComponent *component) |
| const SpriteRenderData & | getData (const SpriteRenderComponent *component) const |
Public Member Functions inherited from Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes > | |
| ComponentSystemWithDataPools (Memory::Allocator *allocator, SizeType size=1024, MemBlockType componentMemType=MemBlockType::Component, MemBlockType dataMemType=MemBlockType::ComponentData) | |
| ComponentHandle | createComponent () override |
| void | destroyComponent (ComponentHandle component) override |
| template<typename T > | |
| T & | getData (const ComponentType *component) |
| Get the data stored for the given component from the data pool storing objects of the specified template type. | |
| template<typename T > | |
| const T & | getData (const ComponentType *component) const |
| Get the const data stored for the given component from the data pool storing objects of the specified template type. | |
Public Member Functions inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| ComponentSystem (Memory::Allocator *allocator, SizeType size=16384, MemBlockType componentMemType=MemBlockType::Component) | |
| void | instrumentedPreUpdate () override |
| Provided for tagged engine instrumentation. | |
| void | instrumentedUpdate () override |
| Provided for tagged engine instrumentation. | |
| void | instrumentedPostUpdate () override |
| Provided for tagged engine instrumentation. | |
| ComponentHandle | createComponent () override |
| Create a new component instance. | |
| void | destroyComponent (ComponentHandle component) override |
| Destroy the component held by the given handle. | |
| SizeType | getComponentIndex (const Component *component) const |
| Get the index of the given component in the component pool. | |
| size_t | size () |
| Returns the number of active components. | |
| void | clearCarryFlags () |
| Clear carry flags of all active components. | |
| void | resetFlags () |
| Reset the flags of all active components. | |
| void | prepareUpdate (Context *) override |
| void | postUpdate (Context *) override |
| ComponentHandle | getHandle (const ComponentType *component) |
| Get a handle to the given Component instance. | |
| virtual void | addEntitiesWithComponent (std::vector< EntityId > &entities, Reflection::TypeId componentTypeId) override |
| Return all entities with a given. | |
Public Member Functions inherited from Cogs::Core::ComponentSystemBase | |
| virtual | ~ComponentSystemBase () |
| Provided for destruction via pointer to base. | |
| ComponentSystemBase (Reflection::TypeId componentType) | |
| Constructs a ComponentSystemBase to manage components of the given componentType. | |
| virtual void | initialize (Context *context) |
| Initialize the system. | |
| void | preUpdate () |
| Run the pre-update method of the system. | |
| void | update () |
| Updates the system state to that of the current frame. | |
| void | postUpdate () |
| Perform post update logic in the system. | |
| virtual void | preUpdate (Context *) |
| Provided for custom pre update logic in derived systems. | |
| virtual void | prepareUpdate (Context *) |
| Provided for custom update preparation logic in derived systems. | |
| virtual void | update (Context *) |
| Provided for custom update logic in derived systems. | |
| virtual void | postUpdate (Context *) |
| Provided for custom post update logic in derived systems. | |
| virtual void | instrumentedPreUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | instrumentedUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | instrumentedPostUpdate () |
| Provided for tagged engine instrumentation. | |
| virtual void | addEntitiesWithComponent (std::vector< EntityId > &, Reflection::TypeId) |
| Return all entities with a given. | |
| virtual void | cleanup (Context *) |
| Provided for custom cleanup logic in derived systems. | |
| virtual ComponentHandle | createComponent () |
| Create a new component instance. | |
| virtual void | destroyComponent (ComponentHandle) |
| Destroy the component held by the given handle. | |
| Reflection::TypeId | getComponentType () const |
| Get the reflected type of the components managed by this system. | |
Static Public Member Functions | |
| static StringView | getPermutation (PositionMode positionMode, SizeMode sizeMode) |
Static Public Member Functions inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| static Reflection::TypeId | getTypeId () |
| Get the type id of the component type used by the system. | |
Private Types | |
| using | base = ComponentSystemWithDataPool< SpriteRenderComponent, SpriteRenderData > |
Private Member Functions | |
| void | updateBatchMesh () |
Private Attributes | |
| std::vector< SpriteBatch > | spriteBatches |
| MaterialHandle | spriteMaterial |
| std::vector< SpriteMaterial > | materials |
| SpriteBatch * | currentBatch = nullptr |
| std::vector< MeshHandle > | frameMeshes |
| std::vector< MeshHandle > | freeMeshes |
| bool | expandSpriteGeometry = true |
| SpritePicker * | picker = nullptr |
Additional Inherited Members | |
Public Types inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| typedef ComponentType | component_type |
Public Attributes inherited from Cogs::Core::ComponentSystem< ComponentType > | |
| ComponentPool< ComponentType > | pool |
| Pool of components managed by the system. | |
Public Attributes inherited from Cogs::Core::ComponentSystemBase | |
| Reflection::TypeId | componentType |
| The type of components managed by this instance. | |
| Context * | context = nullptr |
| Pointer to the Context instance the system lives in. | |
Definition at line 89 of file SpriteRenderSystem.h.
|
private |
Definition at line 91 of file SpriteRenderSystem.h.
| Cogs::Core::SpriteRenderSystem::SpriteRenderSystem | ( | Memory::Allocator * | allocator, |
| SizeType | capacity | ||
| ) |
Definition at line 23 of file SpriteRenderSystem.cpp.
| void Cogs::Core::SpriteRenderSystem::addSprite | ( | SpriteRenderComponent * | spriteRenderer, |
| glm::vec3 | position, | ||
| glm::vec2 | offset, | ||
| glm::vec2 | size, | ||
| glm::vec4 | texCoords | ||
| ) |
Definition at line 246 of file SpriteRenderSystem.cpp.
| void Cogs::Core::SpriteRenderSystem::addSprite | ( | SpriteRenderComponent * | spriteRenderer, |
| glm::vec3 | position, | ||
| glm::vec2 | size, | ||
| glm::vec4 | texCoords | ||
| ) |
Definition at line 241 of file SpriteRenderSystem.cpp.
| Cogs::Core::SpriteBatch * Cogs::Core::SpriteRenderSystem::begin | ( | SpriteMaterialKey | material, |
| const StringView & | permutation, | ||
| TextureHandle | texture, | ||
| glm::vec4 | color, | ||
| bool | alwaysOnTop = false |
||
| ) |
Definition at line 156 of file SpriteRenderSystem.cpp.
| Cogs::Core::SpriteBatch * Cogs::Core::SpriteRenderSystem::begin | ( | SpriteMaterialKey | material, |
| const StringView & | postfix, | ||
| PositionMode | positionMode, | ||
| SizeMode | sizeMode, | ||
| TextureHandle | texture, | ||
| glm::vec4 | color, | ||
| bool | alwaysOnTop = false |
||
| ) |
Definition at line 213 of file SpriteRenderSystem.cpp.
| Cogs::Core::SpriteBatch * Cogs::Core::SpriteRenderSystem::begin | ( | SpriteMaterialKey | material, |
| TextureHandle | texture, | ||
| glm::vec4 | color | ||
| ) |
Definition at line 231 of file SpriteRenderSystem.cpp.
| Cogs::Core::SpriteBatch * Cogs::Core::SpriteRenderSystem::begin | ( | TextureHandle | texture, |
| glm::vec4 | color | ||
| ) |
Definition at line 236 of file SpriteRenderSystem.cpp.
|
overridevirtual |
Overridden to update data pool contents in lockstep with the component pool. Any subclass overriding this method should call base class first.
Reimplemented from Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes >.
Definition at line 93 of file SpriteRenderSystem.cpp.
|
overridevirtual |
Overridden to update data pool contents in lockstep with the component pool. Any subclass overriding this method should also call base class.
Reimplemented from Cogs::Core::ComponentSystemWithDataPools< ComponentType, DataTypes >.
Definition at line 108 of file SpriteRenderSystem.cpp.
|
static |
Definition at line 345 of file SpriteRenderSystem.cpp.
| const Cogs::Core::SpriteBatch * Cogs::Core::SpriteRenderSystem::getSpriteBatch | ( | SpriteBatchIndex | index | ) | const |
Definition at line 333 of file SpriteRenderSystem.cpp.
| std::span< const Cogs::Core::SpriteBatch > Cogs::Core::SpriteRenderSystem::getSpriteBatches | ( | ) | const |
Definition at line 340 of file SpriteRenderSystem.cpp.
|
overridevirtual |
Initialize the system.
Initialization is performed after all systems are created and a renderer initialized, but before the first time anything is rendered.
| context | Pointer to the context the system lives in. |
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 29 of file SpriteRenderSystem.cpp.
References Cogs::Core::MaterialOptions::blendMode, Cogs::Core::ComponentSystemBase::context, Cogs::Core::MaterialOptions::depthWriteEnabled, Cogs::Core::ComponentSystemBase::initialize(), Cogs::Core::Material::options, and Cogs::Core::PremultipliedBlend.
|
overridevirtual |
Overridden to propagate carry flags. Any subclass overriding this method should also call base class.
Reimplemented from Cogs::Core::ComponentSystem< ComponentType >.
Definition at line 70 of file SpriteRenderSystem.cpp.
|
overridevirtual |
Provided for custom pre update logic in derived systems.
Reimplemented from Cogs::Core::ComponentSystemBase.
Definition at line 49 of file SpriteRenderSystem.cpp.
| size_t Cogs::Core::SpriteRenderSystem::registerSpriteMaterial | ( | MaterialHandle | material | ) |
Definition at line 122 of file SpriteRenderSystem.cpp.
|
private |
Definition at line 376 of file SpriteRenderSystem.cpp.
|
private |
Definition at line 133 of file SpriteRenderSystem.h.
|
private |
Definition at line 138 of file SpriteRenderSystem.h.
|
private |
Definition at line 135 of file SpriteRenderSystem.h.
|
private |
Definition at line 136 of file SpriteRenderSystem.h.
|
private |
Definition at line 131 of file SpriteRenderSystem.h.
|
private |
Definition at line 140 of file SpriteRenderSystem.h.
|
private |
Definition at line 128 of file SpriteRenderSystem.h.
|
private |
Definition at line 130 of file SpriteRenderSystem.h.