3#include "../Base/EffectsCommon.h"
5#include "AttributesGL20.h"
9 class GraphicsDeviceGL20;
10 struct CapabilitiesGL20;
30 size_t name = (size_t)-1;
35 std::string shaderSource;
46 unsigned char attributeMap[MaxVertexAttributesGL20];
48 unsigned unitsInUse = 0;
49 std::unordered_map<size_t, std::pair<uint32_t, uint32_t>> samplers;
50 std::unordered_map<size_t, uint32_t> textures;
51 std::unordered_map<size_t, std::vector<size_t>> real_sampler;
52 std::unordered_map<size_t, SamplerMapGL20*> sampler_map;
54 std::vector<AtomicCounterVariableGL20> atomicCounterVariables;
55 std::vector<AtomicCounterBufferGL20> atomicCounterBuffers;
Provides a weakly referenced view over the contents of a string.
Contains all Cogs related functionality.
std::vector< PreprocessorDefinition > PreprocessorDefinitions
A set of preprocessor definitions.
Contains an effect description used to load a single effect.
EEffectFlags
Effect source flags.
SamplerStateBindingHandle getSamplerStateBinding(EffectHandle effectHandle, const StringView &name, const unsigned int slot) override
Get a handle to a sampler state object binding, mapping how to bind the sampler state to the given ef...
BufferBindingHandle getBufferBinding(EffectHandle effectHandle, const StringView &name) override
Get a handle to a buffer binding.
ConstantBufferBindingHandle getConstantBufferBinding(EffectHandle effectHandle, const StringView &name) override
Get a handle to a constant buffer binding, mapping how to bind a constant buffer to the given effect.
void annotate(EffectHandle handle, const StringView &name) override
Associate a name with an object for use in graphics debugging.
TextureBindingHandle getTextureBinding(EffectHandle effectHandle, const StringView &name, const unsigned int slot) override
Get a handle to a texture object binding, mapping how to bind textures to the given effect.
void annotateGS(EffectHandle handle, const StringView &name) override
Associate a name with an object for use in graphics debugging.
void annotateVS(EffectHandle handle, const StringView &name) override
Associate a name with an object for use in graphics debugging.
void annotatePS(EffectHandle handle, const StringView &name) override
Associate a name with an object for use in graphics debugging.
void releaseResources() override
Release all allocated effect resources.
void annotateCS(EffectHandle handle, const StringView &name) override
Associate a name with an object for use in graphics debugging.
void releaseEffect(EffectHandle handle) override
Release the effect with the given handle, freeing all resources generated during program loading.
void releaseBufferBinding(BufferBindingHandle bufferBindingHandle) override
Release a handle to a buffer binding.
EffectHandle loadComputeEffect(const StringView &fileName, EffectFlags::EEffectFlags effectFlags) override
Load the compute shader with the given file name and create an effect.
Provides buffer management functionality.