blob: a81d95a0102821fbb9d5a865dfb520677e512631 [file] [log] [blame]
// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Adapted from the javascript implementation upon WebGL by kwaters@.
#ifndef SHADER_H_INCLUDED
#define SHADER_H_INCLUDED
#include <GLES2/gl2.h>
#include "matrixop.h"
typedef struct {
// program
GLuint program;
// attribute
GLint pos;
GLint normal;
GLint colorIn;
// uniform
GLint mvp;
GLint normalMatrix;
GLint ambient;
GLint shininess;
GLint light_0_direction;
GLint light_0_diffuse;
GLint light_0_specular;
GLint light_1_direction;
GLint light_1_diffuse;
GLint light_2_direction;
GLint light_2_diffuse;
} SHADERLIT;
typedef struct {
// program
GLuint program;
// attribute
GLint pos;
GLint colorIn;
// uniform
GLint mvp;
} SHADERFLAT;
typedef struct {
// program
GLuint program;
// attribute
GLint pos;
// uniform
GLint minFade;
} SHADERFADE;
extern Matrix4x4 sModelView;
extern Matrix4x4 sProjection;
extern SHADERLIT sShaderLit;
extern SHADERFLAT sShaderFlat;
extern SHADERFADE sShaderFade;
extern int initShaderPrograms();
extern void deInitShaderPrograms();
extern void bindShaderProgram(GLuint program);
#endif // SHADER_H_INCLUDED