1
#ifndef COIN_SOGLSHADERPARAMETER_H
2
#define COIN_SOGLSHADERPARAMETER_H
4
/**************************************************************************\
6
* This file is part of the Coin 3D visualization library.
7
* Copyright (C) 1998-2007 by Systems in Motion. All rights reserved.
9
* This library is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License
11
* ("GPL") version 2 as published by the Free Software Foundation.
12
* See the file LICENSE.GPL at the root directory of this source
13
* distribution for additional information about the GNU GPL.
15
* For using Coin with software that can not be combined with the GNU
16
* GPL, and for taking advantage of the additional benefits of our
17
* support services, please contact Systems in Motion about acquiring
18
* a Coin Professional Edition License.
20
* See http://www.coin3d.org/ for more information.
22
* Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
23
* http://www.sim.no/ sales@sim.no coin-support@coin3d.org
25
\**************************************************************************/
28
#error this is a private header file
31
// *************************************************************************
33
#include <Inventor/C/glue/gl.h>
36
// *************************************************************************
38
class SoGLShaderObject;
40
class SoGLShaderParameter
43
virtual void set1f(const SoGLShaderObject * shader, const float value, const char * name, const int id) = 0;
44
virtual void set2f(const SoGLShaderObject * shader, const float * value, const char * name, const int id) = 0;
45
virtual void set3f(const SoGLShaderObject * shader, const float * value, const char * name, const int id) = 0;
46
virtual void set4f(const SoGLShaderObject * shader, const float * value, const char * name, const int id) = 0;
48
virtual void set1fv(const SoGLShaderObject * shader, const int num, const float * value, const char* name, const int id) = 0;
49
virtual void set2fv(const SoGLShaderObject * shader, const int num, const float * value, const char* name, const int id) = 0;
50
virtual void set3fv(const SoGLShaderObject * shader, const int num, const float * value, const char* name, const int id) = 0;
51
virtual void set4fv(const SoGLShaderObject * shader, const int num, const float * value, const char* name, const int id) = 0;
53
virtual void setMatrix(const SoGLShaderObject * shader, const float * value, const char * name, const int id) = 0;
54
virtual void setMatrixArray(const SoGLShaderObject * shader, const int num, const float * value, const char * name, const int id) = 0;
56
virtual void set1i(const SoGLShaderObject * shader, const int32_t value, const char * name, const int id) = 0;
57
virtual void set2i(const SoGLShaderObject * shader, const int32_t * value, const char * name, const int id) = 0;
58
virtual void set3i(const SoGLShaderObject * shader, const int32_t * value, const char * name, const int id) = 0;
59
virtual void set4i(const SoGLShaderObject * shader, const int32_t * value, const char * name, const int id) = 0;
61
virtual void set1iv(const SoGLShaderObject * shader, const int num, const int32_t * value, const char * name, const int id) = 0;
62
virtual void set2iv(const SoGLShaderObject * shader, const int num, const int32_t * value, const char * name, const int id) = 0;
63
virtual void set3iv(const SoGLShaderObject * shader, const int num, const int32_t * value, const char * name, const int id) = 0;
64
virtual void set4iv(const SoGLShaderObject * shader, const int num, const int32_t * value, const char * name, const int id) = 0;
66
virtual SoShader::Type shaderType(void) const = 0;
69
SoGLShaderParameter();
70
virtual ~SoGLShaderParameter();
73
#endif /* ! COIN_SOGLSHADERPARAMETER_H */