~ubuntu-branches/ubuntu/hardy/sauerbraten/hardy-backports

« back to all changes in this revision

Viewing changes to engine/shaders.h

  • Committer: Bazaar Package Importer
  • Author(s): Bruno "Fuddl" Kleinert
  • Date: 2007-01-09 18:19:30 UTC
  • Revision ID: james.westby@ubuntu.com-20070109181930-zy2ulzq3ukfjhrix
Tags: upstream-0.0.20061204.dfsg
ImportĀ upstreamĀ versionĀ 0.0.20061204.dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// GL_ARB_vertex_program, GL_ARB_fragment_program
 
2
extern PFNGLGENPROGRAMSARBPROC            glGenPrograms_;
 
3
extern PFNGLBINDPROGRAMARBPROC            glBindProgram_;
 
4
extern PFNGLPROGRAMSTRINGARBPROC          glProgramString;
 
5
extern PFNGLPROGRAMENVPARAMETER4FARBPROC  glProgramEnvParameter4f_;
 
6
extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fv_;
 
7
 
 
8
extern int renderpath;
 
9
 
 
10
enum { R_FIXEDFUNCTION = 0, R_ASMSHADER, /* R_GLSLANG */ };
 
11
 
 
12
enum { SHPARAM_VERTEX = 0, SHPARAM_PIXEL };
 
13
 
 
14
#define MAXSHADERPARAMS 10
 
15
 
 
16
struct ShaderParam
 
17
{
 
18
    int type;
 
19
    int index;
 
20
    float val[4];
 
21
};
 
22
 
 
23
enum { SHADER_DEFAULT = 0, SHADER_NORMALSLMS };
 
24
 
 
25
extern int shaderdetail;
 
26
 
 
27
struct Shader
 
28
{
 
29
    char *name;
 
30
    int type;
 
31
    GLuint vs, ps;
 
32
    vector<ShaderParam> defaultparams;
 
33
    Shader *fastshader;
 
34
    int fastdetail;
 
35
 
 
36
    void bindprograms()
 
37
    {
 
38
        glBindProgram_(GL_VERTEX_PROGRAM_ARB,   vs);
 
39
        glBindProgram_(GL_FRAGMENT_PROGRAM_ARB, ps);
 
40
    };
 
41
 
 
42
    void set()
 
43
    {
 
44
        if(renderpath==R_FIXEDFUNCTION) return;
 
45
        if(fastshader && shaderdetail <= fastdetail) fastshader->bindprograms();
 
46
        else bindprograms();
 
47
    };
 
48
};
 
49
 
 
50
extern Shader *defaultshader;
 
51
extern Shader *notextureshader;
 
52
extern Shader *nocolorshader;
 
53
 
 
54
extern Shader *lookupshaderbyname(const char *name);
 
55