mirror of https://github.com/bjornbytes/lovr.git
Add no-op standard shader;
This commit is contained in:
parent
612f699aa4
commit
4611b1c9a3
|
@ -78,6 +78,7 @@ const char* CompareModes[] = {
|
|||
|
||||
const char* DefaultShaders[] = {
|
||||
[SHADER_UNLIT] = "unlit",
|
||||
[SHADER_STANDARD] = "standard",
|
||||
[SHADER_CUBE] = "cube",
|
||||
[SHADER_PANO] = "pano",
|
||||
[SHADER_FONT] = "font",
|
||||
|
|
|
@ -62,6 +62,7 @@ static const char* getUniformTypeName(const Uniform* uniform) {
|
|||
Shader* lovrShaderInitDefault(Shader* shader, DefaultShader type, ShaderFlag* flags, uint32_t flagCount) {
|
||||
switch (type) {
|
||||
case SHADER_UNLIT: return lovrShaderInitGraphics(shader, NULL, NULL, flags, flagCount);
|
||||
case SHADER_STANDARD: return lovrShaderInitGraphics(shader, lovrStandardVertexShader, lovrStandardFragmentShader, flags, flagCount);
|
||||
case SHADER_CUBE: return lovrShaderInitGraphics(shader, lovrCubeVertexShader, lovrCubeFragmentShader, flags, flagCount);
|
||||
case SHADER_PANO: return lovrShaderInitGraphics(shader, lovrCubeVertexShader, lovrPanoFragmentShader, flags, flagCount);
|
||||
case SHADER_FONT: return lovrShaderInitGraphics(shader, NULL, lovrFontFragmentShader, flags, flagCount);
|
||||
|
|
|
@ -53,6 +53,7 @@ typedef struct {
|
|||
|
||||
typedef enum {
|
||||
SHADER_UNLIT,
|
||||
SHADER_STANDARD,
|
||||
SHADER_CUBE,
|
||||
SHADER_PANO,
|
||||
SHADER_FONT,
|
||||
|
|
|
@ -115,6 +115,22 @@ const char* lovrUnlitFragmentShader = ""
|
|||
" return graphicsColor * lovrDiffuseColor * vertexColor * texture(image, uv); \n"
|
||||
"}";
|
||||
|
||||
const char* lovrStandardVertexShader = ""
|
||||
"out vec3 vWorldPosition; \n"
|
||||
"out vec3 vWorldNormal; \n"
|
||||
"vec4 position(mat4 projection, mat4 transform, vec4 vertex) { \n"
|
||||
" vWorldPosition = vec3(lovrModel * vertex); \n"
|
||||
" vWorldNormal = mat3(lovrModel) * lovrNormal; // TODO non-uniform scale \n"
|
||||
" return projection * lovrView * vec4(vWorldPosition, 1.); \n"
|
||||
"}";
|
||||
|
||||
const char* lovrStandardFragmentShader = ""
|
||||
"in vec3 vWorldPosition; \n"
|
||||
"in vec3 vWorldNormal; \n"
|
||||
"vec4 color(vec4 graphicsColor, sampler2D image, vec2 uv) { \n"
|
||||
" return vec4(1., 0., 0., 1.); \n"
|
||||
"}";
|
||||
|
||||
const char* lovrCubeVertexShader = ""
|
||||
"out vec3 texturePosition[2]; \n"
|
||||
"vec4 position(mat4 projection, mat4 transform, vec4 vertex) { \n"
|
||||
|
|
|
@ -8,6 +8,8 @@ extern const char* lovrShaderComputePrefix;
|
|||
extern const char* lovrShaderComputeSuffix;
|
||||
extern const char* lovrUnlitVertexShader;
|
||||
extern const char* lovrUnlitFragmentShader;
|
||||
extern const char* lovrStandardVertexShader;
|
||||
extern const char* lovrStandardFragmentShader;
|
||||
extern const char* lovrCubeVertexShader;
|
||||
extern const char* lovrCubeFragmentShader;
|
||||
extern const char* lovrPanoFragmentShader;
|
||||
|
|
Loading…
Reference in New Issue