浏览代码

Updated postpro shaders system

pull/23/head
raysan5 10 年前
父节点
当前提交
9572d6c063
共有 3 个文件被更改,包括 23 次插入5 次删除
  1. +2
    -0
      src/core.c
  2. +10
    -2
      src/models.c
  3. +11
    -3
      src/rlgl.c

+ 2
- 0
src/core.c 查看文件

@ -999,6 +999,8 @@ void SetCustomShader(Shader shader)
void SetDefaultShader(void) void SetDefaultShader(void)
{ {
rlglSetDefaultShader(); rlglSetDefaultShader();
enabledPostpro = false;
} }
//---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------

+ 10
- 2
src/models.c 查看文件

@ -1112,8 +1112,16 @@ void UnloadModel(Model model)
// Link a texture to a model // Link a texture to a model
void SetModelTexture(Model *model, Texture2D texture) void SetModelTexture(Model *model, Texture2D texture)
{ {
if (texture.id <= 0) model->texture.id = whiteTexture; // Default white texture (use mesh color) if (texture.id <= 0)
else model->texture = texture; {
model->texture.id = whiteTexture; // Default white texture (use mesh color)
model->shader.texDiffuseId = whiteTexture;
}
else
{
model->texture = texture;
model->shader.texDiffuseId = texture.id;
}
} }
// Load a custom shader (vertex shader + fragment shader) // Load a custom shader (vertex shader + fragment shader)

+ 11
- 3
src/rlgl.c 查看文件

@ -1058,7 +1058,11 @@ void rlglInitPostpro(void)
void rlglSetPostproShader(Shader shader) void rlglSetPostproShader(Shader shader)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
SetModelShader(&postproQuad, shader); rlglSetModelShader(&postproQuad, shader);
//TraceLog(INFO, "Postproquad texture id: %i", postproQuad.texture.id);
//TraceLog(INFO, "Postproquad shader diffuse map id: %i", postproQuad.shader.texDiffuseId);
//TraceLog(INFO, "Shader diffuse map id: %i", shader.texDiffuseId);
#endif #endif
} }
@ -1365,7 +1369,8 @@ void rlglDrawModel(Model model, Vector3 position, float rotationAngle, Vector3 r
// Set shader textures (diffuse, normal, specular) // Set shader textures (diffuse, normal, specular)
glActiveTexture(GL_TEXTURE0); glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, model.shader.texDiffuseId); glBindTexture(GL_TEXTURE_2D, model.texture.id);
//glBindTexture(GL_TEXTURE_2D, model.shader.texDiffuseId);
//glUniform1i(model.shader.mapDiffuseLoc, 0); // Diffuse texture fits in texture unit 0 //glUniform1i(model.shader.mapDiffuseLoc, 0); // Diffuse texture fits in texture unit 0
if (vaoSupported) if (vaoSupported)
@ -2104,6 +2109,8 @@ void rlglSetModelShader(Model *model, Shader shader)
glVertexAttribPointer(shader.normalLoc, 3, GL_FLOAT, 0, 0, 0); glVertexAttribPointer(shader.normalLoc, 3, GL_FLOAT, 0, 0, 0);
if (vaoSupported) glBindVertexArray(0); // Unbind VAO if (vaoSupported) glBindVertexArray(0); // Unbind VAO
//if (model->texture.id > 0) model->shader.texDiffuseId = model->texture.id;
#endif #endif
} }
@ -2144,7 +2151,8 @@ void rlglSetCustomShader(Shader shader)
void rlglSetDefaultShader(void) void rlglSetDefaultShader(void)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
rlglSetCustomShader(defaultShader); //rlglSetCustomShader(defaultShader);
rlglSetPostproShader(defaultShader);
#endif #endif
} }

||||||
x
 
000:0
正在加载...
取消
保存