root/trunk/thune/gl/shader.h

Revision 550, 1.5 kB (checked in by krobillard, 3 months ago)

Thune:

  • 8-bit string encoding is now Latin-1.
  • Now using WELL512a generator for random numbers.
  • Added hash-map datatype. List datatype can now be disabled in config.
  • Added project-point, remap.
  • Unique & fill now handle vector!.
  • File port 'read now retuns none when end of file reached.

Thune-GL:

  • Added draw-prog! & vertex-buffer! datatypes.
  • Display now accepts /fullscreen option.
  • Added particle-sim dialect.
Line 
1#ifndef SHADER_H
2#define SHADER_H
3/*============================================================================
4    Thune OpenGL Module
5    Copyright (C) 2005-2008  Karl Robillard
6
7    This library is free software; you can redistribute it and/or
8    modify it under the terms of the GNU Lesser General Public
9    License as published by the Free Software Foundation; either
10    version 2.1 of the License, or (at your option) any later version.
11
12    This library is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    Lesser General Public License for more details.
16
17    You should have received a copy of the GNU Lesser General Public
18    License along with this library; if not, write to the Free Software
19    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20===========================================================================*/
21
22
23typedef struct
24{
25    GLenum type;
26    GLint  location;
27    UAtom  name;
28}
29ShaderParam;
30
31
32typedef struct
33{
34    GLuint program;
35    int    paramCount;
36    ShaderParam param[1];
37}
38Shader;
39
40
41int  makeShader( UThread*, UCell*, const char* vert, const char* frag );
42void loadShader( UThread*, UCell* );
43void destroyShader( Shader* );
44void setUniform( UThread*, UAtom name, UCell* );
45void setShaderUniforms( const Shader*, const UBlock* );
46int  shaderTextureUnit( const Shader*, UAtom name );
47Shader* shaderContext( UThread*, const UCell*, UBlock** blkPtr );
48
49
50#endif /*SHADER_H*/
Note: See TracBrowser for help on using the browser.