// 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 #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