Пример #1
0
void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
    if (transpose)
    {
        float param[16];

        param[0x0] = value[3];
        param[0x1] = value[2];
        param[0x2] = value[1];
        param[0x3] = value[0];

        param[0x4] = value[7];
        param[0x5] = value[6];
        param[0x6] = value[5];
        param[0x7] = value[4];
        
        param[0x8] = value[11];
        param[0x9] = value[10];
        param[0xa] = value[9];
        param[0xb] = value[8];

        param[0xc] = value[15];
        param[0xd] = value[14];
        param[0xe] = value[13];
        param[0xf] = value[12];

        GPU_SetUniform(location, (u32*) param, 4);
    }
    else
        GPU_SetUniform(location, (u32*) value, 4);
}
Пример #2
0
void setUniformMatrix(u32 startreg, float* m)
{
	float param[16];
	param[0x0]=m[3]; //w
	param[0x1]=m[2]; //z
	param[0x2]=m[1]; //y
	param[0x3]=m[0]; //x
	param[0x4]=m[7];
	param[0x5]=m[6];
	param[0x6]=m[5];
	param[0x7]=m[4];
	param[0x8]=m[11];
	param[0x9]=m[10];
	param[0xa]=m[9];
	param[0xb]=m[8];
	param[0xc]=m[15];
	param[0xd]=m[14];
	param[0xe]=m[13];
	param[0xf]=m[12];
	GPU_SetUniform(startreg, (u32*)param, 4);
}