37 "shader/" + shaderVersion +
"/particles",
38 "render_vertexshader.vert",
40 "#define HAVE_DEPTH_FOG\n" +
47 "shader/" + shaderVersion +
"/particles",
48 "render_fragmentshader.frag",
50 "#define HAVE_DEPTH_FOG\n" +
153 if (textureAtlasTexture ==
nullptr)
return;
156 auto textureAtlasTextureWidth = textureAtlasTexture->getTextureWidth();
157 auto textureAtlasTextureHeight = textureAtlasTexture->getTextureHeight();
159 for (
auto atlasTextureIdx = 0; atlasTextureIdx <
ATLASTEXTURE_COUNT; atlasTextureIdx++) {
161 if (atlasTexture ==
nullptr)
break;
167 static_cast<float>(atlasTexture->left) /
static_cast<float>(textureAtlasTextureWidth),
168 static_cast<float>(atlasTexture->top) /
static_cast<float>(textureAtlasTextureHeight)
175 static_cast<float>(atlasTexture->width) /
static_cast<float>(textureAtlasTextureWidth),
176 static_cast<float>(atlasTexture->height) /
static_cast<float>(textureAtlasTextureHeight)
Particles shader program.
int32_t uniformTextureAtlasTextureUnit
void initialize()
Initialize renderer.
int32_t uniformViewPortWidth
void updateMatrices(int contextIdx)
Update matrices to program.
void updateEffect(int contextIdx)
Update effect to program.
int32_t uniformViewPortHeight
void unUseProgram(int contextIdx)
Unuse particles shader program.
int32_t uniformProjectionMatrixXx
int32_t ppsTextureAtlasTextureId
array< int32_t, ATLASTEXTURE_COUNT > uniformAtlasTextureOrientation
array< int32_t, ATLASTEXTURE_COUNT > uniformAtlasTexturePosition
int32_t uniformProjectionMatrixYy
void setTextureAtlas(int contextIdx, TextureAtlas *textureAtlas)
Set texture atlas.
static constexpr int ATLASTEXTURE_COUNT
void useProgram(int contextIdx)
Use lighting program.
array< int32_t, ATLASTEXTURE_COUNT > uniformAtlasTextureDimension
virtual void setTextureUnit(int contextIdx, int32_t textureUnit)=0
Sets up texture unit.
virtual int32_t loadShader(int32_t type, const string &pathName, const string &fileName, const string &definitions=string(), const string &functions=string())=0
Loads a shader.
int32_t SHADER_FRAGMENT_SHADER
int32_t SHADER_VERTEX_SHADER
virtual int32_t createProgram(int type)=0
Creates a shader program.
virtual void setProgramUniformFloatVec2(int contextIdx, int32_t uniformId, const array< float, 2 > &data)=0
Set up a float vec2 uniform value.
virtual bool isUsingProgramAttributeLocation()=0
virtual void setProgramAttributeLocation(int32_t programId, int32_t location, const string &name)=0
Bind attribute to a input location.
virtual int32_t createTexture()=0
Creates a texture.
Matrix4x4 & getProjectionMatrix()
int32_t getViewPortWidth()
virtual void setProgramUniformInteger(int contextIdx, int32_t uniformId, int32_t value)=0
Set up a integer uniform value.
virtual bool linkProgram(int32_t programId)=0
Links attached shaders to a program.
virtual void bindTexture(int contextIdx, int32_t textureId)=0
Binds a texture with given id or unbinds when using ID_NONE.
int32_t getViewPortHeight()
void setLighting(int contextIdx, int32_t lighting)
Set current lighting model.
virtual void attachShaderToProgram(int32_t programId, int32_t shaderId)=0
Attaches a shader to a program.
virtual void setProgramUniformFloatMatrix4x4(int contextIdx, int32_t uniformId, const array< float, 16 > &value)=0
Set up a float matrix 4x4 uniform value.
virtual int32_t getProgramUniformLocation(int32_t programId, const string &name)=0
Returns location of given uniform variable.
Matrix4x4 & getModelViewMatrix()
virtual void disposeTexture(int32_t textureId)=0
Dispose a texture.
virtual void uploadTexture(int contextIdx, Texture *texture)=0
Uploads texture data to current bound texture.
virtual void useProgram(int contextIdx, int32_t programId)=0
Use shader program.
virtual const string getShaderVersion()=0
virtual void setProgramUniformFloat(int contextIdx, int32_t uniformId, float value)=0
Set up a float uniform value.
Matrix4x4 class representing matrix4x4 mathematical structure and operations for 3d space.
Vector3 multiply(const Vector3 &vector3) const
Multiplies this matrix with vector3.
Matrix4x4 & set(float r0c0, float r0c1, float r0c2, float r0c3, float r1c0, float r1c1, float r1c2, float r1c3, float r2c0, float r2c1, float r2c2, float r2c3, float r3c0, float r3c1, float r3c2, float r3c3)
Sets this matrix by its components.
const array< float, 16 > & getArray() const
const AtlasTexture * getAtlasTexture(int textureIdx)
Returns specific atlas texture information within atlas.
void update()
Update texture atlas.