Changeset 2824 for trunk/packages
- Timestamp:
- Mar 7, 2012 1:21:00 PM (12 years ago)
- Location:
- trunk/packages/vizservers/nanovis/vr3d
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/nanovis/vr3d/include/vr3d/vr3d.h
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 #pragma once 3 4 #ifdef WIN32 5 #pragma pointers_to_members(full_generality, single_inheritance) 6 #endif 2 #ifndef VR3D_H 3 #define VR3D_H 7 4 8 5 #include <list> 9 6 10 #ifndef IMAC11 7 #include <GL/glew.h> 12 #endif13 14 #ifdef _WIN3215 #include <windows.h>16 #endif17 18 #ifndef IMAC19 #include <GL/gl.h>20 #else21 #include <OpenGLES/ES1/gl.h>22 #include <OpenGLES/ES1/glext.h>23 #endif24 25 #ifdef _WIN3226 //#include <windows.h>27 28 #ifdef VR3DDLLEXPORT29 # define Vr3DExport __declspec(dllexport)30 # define EXPIMP_TEMPLATE31 #else32 # define Vr3DExport __declspec(dllimport)33 # define EXPIMP_TEMPLATE extern34 #endif35 36 #else37 # define Vr3DExport38 #endif39 40 41 //#include <vr3d/vr3dClassIDs.h>42 8 43 9 #ifdef __cplusplus … … 45 11 #endif 46 12 47 void Vr3DExportvrInitializeTimeStamp();13 void vrInitializeTimeStamp(); 48 14 49 float Vr3DExportvrGetTimeStamp();15 float vrGetTimeStamp(); 50 16 51 void Vr3DExportvrUpdateTimeStamp();17 void vrUpdateTimeStamp(); 52 18 19 void vrInit(); 53 20 54 void Vr3DExport vrInit(); 55 56 void Vr3DExport vrExit(); 21 void vrExit(); 57 22 58 23 #ifdef __cplusplus 59 60 class vrTransform;61 typedef std::list<vrTransform*> vrPath;62 24 } 63 25 #endif 26 27 #endif -
trunk/packages/vizservers/nanovis/vr3d/include/vr3d/vrEnums.h
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 #pragma once 2 #ifndef VRENUMS_H 3 #define VRENUMS_H 3 4 4 5 #include <vr3d/vr3d.h> … … 9 10 10 11 enum COLORFORMAT { 11 CF_LUMINANCE = GL_LUMINANCE, /*< GL_LIMINANCE */ 12 13 #ifndef OPENGLES 14 CF_RGB8 = GL_RGB8, /*< GL_RGB8 */ 12 CF_LUMINANCE = GL_LUMINANCE, 13 CF_RGB8 = GL_RGB8, 15 14 CF_FLOAT_RGBA32 = GL_FLOAT_RGBA32_NV, 16 15 CF_DEPTH_COMPONENT = GL_DEPTH_COMPONENT, 17 #endif 18 CF_RGB = GL_RGB, /*< GL_UNSIGNED_BYTE */ 19 CF_RGBA = GL_RGBA, /*< GL_FLOAT */ 16 CF_RGB = GL_RGB, 17 CF_RGBA = GL_RGBA, 20 18 }; 21 19 22 20 enum DATATYPE { 23 DT_UBYTE = GL_UNSIGNED_BYTE, /*< GL_UNSIGNED_BYTE */ 24 DT_FLOAT = GL_FLOAT, /*< GL_FLOAT */ 25 #ifndef OPENGLES 26 DT_UINT = GL_UNSIGNED_INT, /*< GL_UNSIGNED_INT */ 27 DT_INT = GL_INT, /*< GL_INT */ 28 DT_DEPTH_COMPONENT = GL_DEPTH_COMPONENT, 29 DT_DEPTH_COMPONENT32F = GL_DEPTH_COMPONENT32F_NV, 30 #endif 21 DT_UBYTE = GL_UNSIGNED_BYTE, 22 DT_FLOAT = GL_FLOAT, 23 DT_UINT = GL_UNSIGNED_INT, 24 DT_INT = GL_INT, 25 DT_DEPTH_COMPONENT = GL_DEPTH_COMPONENT, 26 DT_DEPTH_COMPONENT32F = GL_DEPTH_COMPONENT32F_NV, 31 27 }; 32 28 33 34 29 enum TEXFILTER { 35 TF_NEAREST = GL_NEAREST, /*< GL_NEAREST */36 TF_LINEAR = GL_LINEAR, /*< GL_LINEAR */30 TF_NEAREST = GL_NEAREST, 31 TF_LINEAR = GL_LINEAR, 37 32 }; 38 33 39 34 enum TEXTARGET { 40 #ifndef OPENGLES 41 TT_TEXTURE_1D = GL_TEXTURE_1D, /*< R2_TEXTURE_1D */ 42 #endif 43 TT_TEXTURE_2D = GL_TEXTURE_2D, /*< GL_TEXTURE_2D */ 44 #ifndef OPENGLES 45 TT_TEXTURE_RECTANGLE = GL_TEXTURE_RECTANGLE_NV, /*< GL_TEXTURE_RECTANGLE_NV */ 46 TT_TEXTURE_3D = GL_TEXTURE_3D, /*< GL_TEXTURE_3D */ 47 #endif 48 35 TT_TEXTURE_1D = GL_TEXTURE_1D, 36 TT_TEXTURE_2D = GL_TEXTURE_2D, 37 TT_TEXTURE_RECTANGLE = GL_TEXTURE_RECTANGLE_NV, 38 TT_TEXTURE_3D = GL_TEXTURE_3D, 49 39 }; 50 40 51 41 enum TEXWRAP { 52 #ifndef OPENGLES 53 TW_CLAMP = GL_CLAMP, /*< GL_CLAMP */ 54 #endif 55 TW_CLAMP_TO_EDGE = GL_CLAMP_TO_EDGE, /*< GL_CLAMP_TO_EDGE */ 56 TW_REPEAT = GL_REPEAT, /*< GL_REPEAT */ 57 #ifndef OPENGLES 58 TW_MIRROR = GL_MIRRORED_REPEAT, /*< GL_MIRROR */ 59 #endif 42 TW_CLAMP = GL_CLAMP, 43 TW_CLAMP_TO_EDGE = GL_CLAMP_TO_EDGE, 44 TW_REPEAT = GL_REPEAT, 45 TW_MIRROR = GL_MIRRORED_REPEAT, 60 46 }; 61 47 62 48 #endif -
trunk/packages/vizservers/nanovis/vr3d/include/vr3d/vrTexture.h
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 2 /** 3 * @file vr vrTexture.h3 * @file vrTexture.h 4 4 * @brief An abtract class for the texture 5 5 * @author Insoo Woo(vrinside@gmail.com) 6 6 * @author PhD research assistants in PURPL at Purdue University 7 7 */ 8 9 #pragma once 10 11 #ifdef WIN32 12 #pragma pointers_to_members(full_generality, single_inheritance) 13 #endif 8 #ifndef VRTEXTURE_H 9 #define VRTEXTURE_H 14 10 15 11 #include <vr3d/vr3d.h> 16 12 #include <vr3d/vrEnums.h> 17 13 18 class Vr3DExport vrTexture { 19 friend class vrVRMLLoader; 20 21 protected : 22 /** 23 * @brief texture target 24 * @brief Default value is 0 25 */ 26 TEXTARGET _target; 27 28 /** 29 * @brief vrTexture object id. 30 * @brief Default value is 0 31 */ 32 unsigned int _objectID; 33 34 /** 35 * @brief texture type 36 * @brief Default value is GL_FLOAT 37 */ 38 DATATYPE _type; 39 40 /** 41 * @brief texture format 42 * @brief Default value is GL_RGBA 43 */ 44 COLORFORMAT _colorFormat; 45 46 /** 47 * @brief texture internal format 48 * @brief Default value is GL_RGBA 49 */ 50 COLORFORMAT _internalColorFormat; 51 52 53 /** 54 * @brief min filter 55 * @brief Default value is R2_LINEAR 56 */ 57 TEXFILTER _minFilter; 58 59 /** 60 * @brief mag filter 61 * @brief Default value is R2_LINEAR 62 */ 63 TEXFILTER _magFilter; 64 65 /** 66 * @brief component count 67 */ 68 int _compCount; 69 70 71 public : 72 vrTexture(); 73 protected : 74 virtual ~vrTexture(); 75 76 public : 77 /** 78 * @brief bind texture id 79 */ 80 void bind(int index) const; 81 82 /** 83 * @brief unbind texture id 84 */ 85 void unbind() const; 86 87 /** 88 * @brief update pixel data 89 * @param data pixel data 90 */ 91 virtual void updatePixels(void* data) = 0; 92 93 /** 94 * @brief retur texture object id 95 */ 96 unsigned int getGraphicsObjectID() const; 97 98 /** 99 * @brief return texture target 100 */ 101 TEXTARGET getTextureTarget() const; 102 103 /** 104 * @brief set min filter 105 */ 106 void setMinFilter(TEXFILTER filter); 107 108 109 /** 110 * @brief set mag filter 111 */ 112 void setMagFilter(TEXFILTER filter); 113 114 /** 115 * @brief return min filter 116 */ 117 TEXFILTER getMinFilter() const; 118 119 /** 120 * @brief return mag filter 121 */ 122 TEXFILTER getMagFilter() const; 123 124 /** 125 * @brief return color format 126 */ 127 COLORFORMAT getColorFormat() const; 128 129 /** 130 * @brief return data type 131 */ 132 DATATYPE getDataType() const; 133 134 /** 135 * @brief component count 136 */ 137 int getCompCount() const; 138 14 class Vr3DExport vrTexture 15 { 16 protected: 17 /** 18 * @brief texture target 19 * @brief Default value is 0 20 */ 21 TEXTARGET _target; 22 23 /** 24 * @brief vrTexture object id. 25 * @brief Default value is 0 26 */ 27 unsigned int _objectID; 28 29 /** 30 * @brief texture type 31 * @brief Default value is GL_FLOAT 32 */ 33 DATATYPE _type; 34 35 /** 36 * @brief texture format 37 * @brief Default value is GL_RGBA 38 */ 39 COLORFORMAT _colorFormat; 40 41 /** 42 * @brief texture internal format 43 * @brief Default value is GL_RGBA 44 */ 45 COLORFORMAT _internalColorFormat; 46 47 48 /** 49 * @brief min filter 50 * @brief Default value is R2_LINEAR 51 */ 52 TEXFILTER _minFilter; 53 54 /** 55 * @brief mag filter 56 * @brief Default value is R2_LINEAR 57 */ 58 TEXFILTER _magFilter; 59 60 /** 61 * @brief component count 62 */ 63 int _compCount; 64 65 public: 66 vrTexture(); 67 68 protected: 69 virtual ~vrTexture(); 70 71 public: 72 /** 73 * @brief bind texture id 74 */ 75 void bind(int index) const; 76 77 /** 78 * @brief unbind texture id 79 */ 80 void unbind() const; 81 82 /** 83 * @brief update pixel data 84 * @param data pixel data 85 */ 86 virtual void updatePixels(void* data) = 0; 87 88 /** 89 * @brief retur texture object id 90 */ 91 unsigned int getGraphicsObjectID() const; 92 93 /** 94 * @brief return texture target 95 */ 96 TEXTARGET getTextureTarget() const; 97 98 /** 99 * @brief set min filter 100 */ 101 void setMinFilter(TEXFILTER filter); 102 103 /** 104 * @brief set mag filter 105 */ 106 void setMagFilter(TEXFILTER filter); 107 108 /** 109 * @brief return min filter 110 */ 111 TEXFILTER getMinFilter() const; 112 113 /** 114 * @brief return mag filter 115 */ 116 TEXFILTER getMagFilter() const; 117 118 /** 119 * @brief return color format 120 */ 121 COLORFORMAT getColorFormat() const; 122 123 /** 124 * @brief return data type 125 */ 126 DATATYPE getDataType() const; 127 128 /** 129 * @brief component count 130 */ 131 int getCompCount() const; 139 132 }; 140 133 141 142 134 inline void vrTexture::bind(int index) const 143 135 { 144 145 146 136 glEnable(_target); 137 glActiveTexture(GL_TEXTURE0 + index); 138 glBindTexture(_target, _objectID); 147 139 } 148 140 149 141 inline void vrTexture::unbind() const 150 142 { 151 143 glDisable(_target); 152 144 } 153 145 154 146 inline unsigned int vrTexture::getGraphicsObjectID() const 155 147 { 156 148 return _objectID; 157 149 } 158 150 159 151 inline TEXTARGET vrTexture::getTextureTarget() const 160 152 { 161 153 return _target; 162 154 } 163 155 164 156 inline void vrTexture::setMinFilter(TEXFILTER filter) 165 157 { 166 158 _minFilter = filter; 167 159 } 168 160 169 161 inline void vrTexture::setMagFilter(TEXFILTER filter) 170 162 { 171 163 _magFilter = filter; 172 164 } 173 165 174 166 inline TEXFILTER vrTexture::getMinFilter() const 175 167 { 176 168 return _minFilter; 177 169 } 178 170 179 171 inline TEXFILTER vrTexture::getMagFilter() const 180 172 { 181 173 return _magFilter; 182 174 } 183 175 184 176 inline COLORFORMAT vrTexture::getColorFormat() const 185 177 { 186 178 return _colorFormat; 187 179 } 188 180 189 181 inline DATATYPE vrTexture::getDataType() const 190 182 { 191 183 return _type; 192 184 } 193 185 194 186 inline int vrTexture::getCompCount() const 195 187 { 196 188 return _compCount; 197 189 } 198 190 199 191 inline int GetNumComponent(COLORFORMAT format) 200 192 { 201 switch (format) 202 { 203 case CF_LUMINANCE : return 1; 204 case CF_RGB : return 3; 205 case CF_RGBA : return 4; 206 default : 207 //R2Assert(0); 208 ; 209 } 210 return 0; 193 switch (format) { 194 case CF_LUMINANCE : return 1; 195 case CF_RGB : return 3; 196 case CF_RGBA : return 4; 197 default : 198 ; 199 } 200 return 0; 211 201 } 212 202 213 203 inline int SizeOf(DATATYPE format) 214 204 { 215 switch (format) 216 { 217 case DT_UBYTE : return sizeof(unsigned char); 218 case DT_FLOAT : return sizeof(float); 219 #ifndef OPENGLES 220 //case DT_UINT : return sizeof(unsigned int); 221 //case DT_INT : return sizeof(unsigned int); 205 switch (format) { 206 case DT_UBYTE : return sizeof(unsigned char); 207 case DT_FLOAT : return sizeof(float); 208 //case DT_UINT : return sizeof(unsigned int); 209 //case DT_INT : return sizeof(unsigned int); 210 default : 211 ; 212 } 213 return 0; 214 } 215 216 inline bool IsPowerOfTwo(int value) 217 { 218 return ((value&(value-1))==0); 219 } 220 221 inline int GetNextPowerOfTwo(int value) 222 { 223 int nextPOT = 1; 224 while (nextPOT < value) { 225 nextPOT <<= 1; 226 } 227 228 return nextPOT; 229 } 230 222 231 #endif 223 default :224 //R2Assert(0);225 ;226 }227 return 0;228 }229 230 inline bool IsPowerOfTwo(int value)231 {232 return ((value&(value-1))==0);233 }234 235 inline int GetNextPowerOfTwo(int value)236 {237 int nextPOT = 1;238 while (nextPOT < value)239 {240 nextPOT <<= 1;241 }242 243 return nextPOT;244 }245 -
trunk/packages/vizservers/nanovis/vr3d/include/vr3d/vrTexture1D.h
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 #pragma once 2 #ifndef VRTEXTURE1D_H 3 #define VRTEXTURE1D_H 3 4 4 5 #include <vr3d/vrEnums.h> 5 6 #include <vr3d/vrTexture.h> 6 7 7 class Vr3DExport vrTexture1D : public vrTexture { 8 class Vr3DExport vrTexture1D : public vrTexture 9 { 10 /** 11 * @brief Two-dimensional texture width. 12 * @brief Default value is 0 13 */ 14 int _width; 8 15 9 /** 10 * @brief Two-dimensional texture width. 11 * @brief Default value is 0 12 */ 13 int _width; 14 15 /** 16 * @brief Wrap mode. 17 * @brief Default value is R2_CLAMP 18 */ 19 TEXWRAP _wrapS; 16 /** 17 * @brief Wrap mode. 18 * @brief Default value is R2_CLAMP 19 */ 20 TEXWRAP _wrapS; 20 21 21 22 public : 22 23 24 25 23 /** 24 * @brief constructuor 25 */ 26 vrTexture1D(bool depth = false); 26 27 27 28 29 30 28 /** 29 * @brief destructor 30 */ 31 ~vrTexture1D(); 31 32 32 33 34 35 36 33 /** 34 * @brief get texture size 35 * @return texture length 36 */ 37 int getWidth() const; 37 38 38 39 40 41 39 /** 40 * @brief set wrap mode 41 */ 42 void setWrapS(TEXWRAP wrap); 42 43 43 44 44 /** 45 * @brief set wrap mode 46 */ 47 TEXWRAP getWrapS() const; 48 49 /** 50 * @brief set texture data 51 * @param format texture data format 52 * @param type texture data type 53 * @param width texture width 54 * @param data texture data 55 */ 56 void setPixels(COLORFORMAT format, DATATYPE type, int width, void* data); 45 /** 46 * @brief set wrap mode 47 */ 48 TEXWRAP getWrapS() const; 57 49 58 50 /** 59 * @brief set texture data 60 * @param internalFormat texture internal data format 61 * @param format texture data format 62 * @param type texture data type 63 * @param width texture width 64 * @param data texture data 65 */ 66 void setPixels(TEXTARGET target, COLORFORMAT internalFormat, COLORFORMAT format, DATATYPE type, int width, void* data); 51 * @brief set texture data 52 * @param format texture data format 53 * @param type texture data type 54 * @param width texture width 55 * @param data texture data 56 */ 57 void setPixels(COLORFORMAT format, DATATYPE type, int width, void* data); 67 58 68 59 /** 69 * @brief set texture data (NV) 60 * @brief set texture data 61 * @param internalFormat texture internal data format 62 * @param format texture data format 63 * @param type texture data type 64 * @param width texture width 65 * @param data texture data 66 */ 67 void setPixels(TEXTARGET target, COLORFORMAT internalFormat, 68 COLORFORMAT format, DATATYPE type, int width, void *data); 69 70 /** 71 * @brief set texture data (NV) 70 72 * @param internalFormat internal colorformat 71 * @param format texture data format 72 * @param type texture data type 73 * @param width texture width 74 * @param data texture data 75 */ 76 void setPixels(COLORFORMAT internalFormat, COLORFORMAT format, DATATYPE type, int width, void* data); 73 * @param format texture data format 74 * @param type texture data type 75 * @param width texture width 76 * @param data texture data 77 */ 78 void setPixels(COLORFORMAT internalFormat, COLORFORMAT format, 79 DATATYPE type, int width, void *data); 77 80 78 /** 79 * @brief update pixel data 80 * @param data pixel data 81 */ 82 virtual void updatePixels(void* data); 83 81 /** 82 * @brief update pixel data 83 * @param data pixel data 84 */ 85 virtual void updatePixels(void *data); 84 86 }; 85 87 86 88 inline int vrTexture1D::getWidth() const 87 89 { 88 90 return _width; 89 91 } 90 92 91 93 inline void vrTexture1D::setWrapS(TEXWRAP wrap) 92 94 { 93 95 _wrapS = wrap; 94 96 } 95 96 97 97 98 inline TEXWRAP vrTexture1D::getWrapS() const 98 99 { 99 100 return _wrapS; 100 101 } 101 102 103 #endif -
trunk/packages/vizservers/nanovis/vr3d/include/vr3d/vrTexture2D.h
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 #pragma once 2 #ifndef VRTEXTURE2D_H 3 #define VRTEXTURE2D_H 3 4 4 5 #include <vr3d/vrEnums.h> 5 6 #include <vr3d/vrTexture.h> 6 7 7 class Vr3DExport vrTexture2D : public vrTexture { 8 9 /** 10 * @brief Two-dimensional texture width. 11 * @brief Default value is 0 12 */ 13 int _width; 14 15 /** 16 * @brief Two-dimensional texture height. 17 * @brief Default value is 0 18 */ 19 int _height; 20 21 /** 22 * @brief Wrap mode. 23 * @brief Default value is R2_CLAMP 24 */ 25 TEXWRAP _wrapS; 26 27 /** 28 * @brief Wrap mode. 29 * @brief Default value is R2_CLAMP 30 */ 31 TEXWRAP _wrapT; 32 33 bool _depthTexture; 34 public : 35 /** 36 * @brief constructuor 37 */ 38 vrTexture2D(bool depth = false); 39 40 /** 41 * @brief destructor 42 */ 43 ~vrTexture2D(); 44 45 /** 46 * @brief get texture size 47 * @return texture length 48 */ 49 int getWidth() const; 50 51 /** 52 * @brief get texture height 53 * @return texture height 54 */ 55 int getHeight() const; 56 57 /** 58 * @brief set wrap mode 59 */ 60 void setWrapS(TEXWRAP wrap); 61 62 /* 63 * @brief set wrap mode 64 */ 65 void setWrapT(TEXWRAP wrap); 66 67 /** 68 * @brief set wrap mode 69 */ 70 TEXWRAP getWrapS() const; 71 72 /* 73 * @brief set wrap mode 74 */ 75 TEXWRAP getWrapT() const; 76 77 /** 78 * @brief set texture data 79 * @param format texture data format 80 * @param type texture data type 81 * @param width texture width 82 * @param data texture data 83 */ 84 void setPixels(COLORFORMAT format, DATATYPE type, int width, int height, void* data); 8 class Vr3DExport vrTexture2D : public vrTexture 9 { 10 /** 11 * @brief Two-dimensional texture width. 12 * @brief Default value is 0 13 */ 14 int _width; 85 15 86 16 /** 87 * @brief set texture data 88 * @param internalFormat texture internal data format 89 * @param format texture data format 90 * @param type texture data type 91 * @param width texture width 92 * @param data texture data 93 */ 94 void setPixels(TEXTARGET target, COLORFORMAT internalFormat, COLORFORMAT format, DATATYPE type, int width, int height, void* data); 17 * @brief Two-dimensional texture height. 18 * @brief Default value is 0 19 */ 20 int _height; 95 21 96 22 /** 97 * @brief set texture data (NV) 23 * @brief Wrap mode. 24 * @brief Default value is R2_CLAMP 25 */ 26 TEXWRAP _wrapS; 27 28 /** 29 * @brief Wrap mode. 30 * @brief Default value is R2_CLAMP 31 */ 32 TEXWRAP _wrapT; 33 34 bool _depthTexture; 35 public: 36 /** 37 * @brief constructuor 38 */ 39 vrTexture2D(bool depth = false); 40 41 /** 42 * @brief destructor 43 */ 44 ~vrTexture2D(); 45 46 /** 47 * @brief get texture size 48 * @return texture length 49 */ 50 int getWidth() const; 51 52 /** 53 * @brief get texture height 54 * @return texture height 55 */ 56 int getHeight() const; 57 58 /** 59 * @brief set wrap mode 60 */ 61 void setWrapS(TEXWRAP wrap); 62 63 /* 64 * @brief set wrap mode 65 */ 66 void setWrapT(TEXWRAP wrap); 67 68 /** 69 * @brief set wrap mode 70 */ 71 TEXWRAP getWrapS() const; 72 73 /* 74 * @brief set wrap mode 75 */ 76 TEXWRAP getWrapT() const; 77 78 /** 79 * @brief set texture data 80 * @param format texture data format 81 * @param type texture data type 82 * @param width texture width 83 * @param data texture data 84 */ 85 void setPixels(COLORFORMAT format, DATATYPE type, 86 int width, int height, void* data); 87 88 /** 89 * @brief set texture data 90 * @param internalFormat texture internal data format 91 * @param format texture data format 92 * @param type texture data type 93 * @param width texture width 94 * @param data texture data 95 */ 96 void setPixels(TEXTARGET target, COLORFORMAT internalFormat, 97 COLORFORMAT format, DATATYPE type, int width, int height, void *data); 98 99 /** 100 * @brief set texture data (NV) 98 101 * @param internalFormat internal colorformat 99 * @param format texture data format 100 * @param type texture data type 101 * @param width texture width 102 * @param data texture data 103 */ 104 void setPixels(COLORFORMAT internalFormat, COLORFORMAT format, DATATYPE type, int width, int height, void* data); 102 * @param format texture data format 103 * @param type texture data type 104 * @param width texture width 105 * @param data texture data 106 */ 107 void setPixels(COLORFORMAT internalFormat, COLORFORMAT format, 108 DATATYPE type, int width, int height, void *data); 105 109 106 107 108 109 110 virtual void updatePixels(void*data);110 /** 111 * @brief update pixel data 112 * @param data pixel data 113 */ 114 virtual void updatePixels(void *data); 111 115 }; 112 116 113 117 inline int vrTexture2D::getWidth() const 114 118 { 115 119 return _width; 116 120 } 117 121 118 122 inline int vrTexture2D::getHeight() const 119 123 { 120 124 return _height; 121 125 } 122 126 123 127 inline void vrTexture2D::setWrapS(TEXWRAP wrap) 124 128 { 125 129 _wrapS = wrap; 126 130 } 127 131 128 132 inline void vrTexture2D::setWrapT(TEXWRAP wrap) 129 133 { 130 134 _wrapT = wrap; 131 135 } 132 136 133 137 inline TEXWRAP vrTexture2D::getWrapS() const 134 138 { 135 139 return _wrapS; 136 140 } 137 141 138 142 inline TEXWRAP vrTexture2D::getWrapT() const 139 143 { 140 144 return _wrapT; 141 145 } 146 147 #endif -
trunk/packages/vizservers/nanovis/vr3d/include/vr3d/vrTexture3D.h
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 #pragma once 2 #ifndef VRTEXTURE3D_H 3 #define VRTEXTURE3D_H 3 4 4 5 #include <vr3d/vrTexture.h> 5 6 6 #ifndef OPENGLES 7 8 class Vr3DExport vrTexture3D : public vrTexture { 9 10 11 /** 12 * @brief Three-dimensional texture width. 13 * @brief Default value is 0 14 */ 15 int _width; 16 17 /** 18 * @brief Three-dimensional texture height. 19 * @brief Default value is 0 20 */ 21 int _height; 22 23 /** 24 * @brief Three-dimensional texture depth. 25 * @brief Default value is 0 26 */ 27 int _depth; 28 29 /** 30 * @brief Wrap mode. 31 * @brief Default value is R2_CLAMP 32 */ 33 TEXWRAP _wrapS; 34 35 /** 36 * @brief Wrap mode. 37 * @brief Default value is R2_CLAMP 38 */ 39 TEXWRAP _wrapT; 40 public : 41 /** 42 * @brief constructuor 43 */ 44 vrTexture3D(); 45 46 /** 47 * @brief destructor 48 */ 49 ~vrTexture3D(); 50 51 /** 52 * @brief get texture size 53 * @return texture length 54 */ 55 int getWidth() const; 56 57 /** 58 * @brief get texture height 59 * @return texture height 60 */ 61 int getHeight() const; 62 63 /** 64 * @brief get texture height 65 * @return texture depth 66 */ 67 int getDepth() const; 68 69 /** 70 * @brief set wrap mode 71 */ 72 void setWrapS(TEXWRAP wrap); 73 74 /* 75 * @brief set wrap mode 76 */ 77 void setWrapT(TEXWRAP wrap); 78 79 /** 80 * @brief set wrap mode 81 */ 82 TEXWRAP getWrapS() const; 83 84 /* 85 * @brief set wrap mode 86 */ 87 TEXWRAP getWrapT() const; 88 89 /** 90 * @brief set texture data 91 * @param format texture data format 92 * @param type texture data type 93 * @param width texture width 94 * @param data texture data 95 */ 96 void setPixels(COLORFORMAT format, DATATYPE type, int width, int height, int depth, void* data); 7 class Vr3DExport vrTexture3D : public vrTexture 8 { 9 /** 10 * @brief Three-dimensional texture width. 11 * @brief Default value is 0 12 */ 13 int _width; 97 14 98 15 /** 99 * @brief set texture data 100 * @param internalFormat texture internal data format 101 * @param format texture data format 102 * @param type texture data type 103 * @param width texture width 104 * @param data texture data 105 */ 106 void setPixels(TEXTARGET target, COLORFORMAT internalFormat, COLORFORMAT format, DATATYPE type, int width, int height, int depth, void* data); 16 * @brief Three-dimensional texture height. 17 * @brief Default value is 0 18 */ 19 int _height; 107 20 108 21 /** 109 * @brief set texture data (NV) 22 * @brief Three-dimensional texture depth. 23 * @brief Default value is 0 24 */ 25 int _depth; 26 27 /** 28 * @brief Wrap mode. 29 * @brief Default value is R2_CLAMP 30 */ 31 TEXWRAP _wrapS; 32 33 /** 34 * @brief Wrap mode. 35 * @brief Default value is R2_CLAMP 36 */ 37 TEXWRAP _wrapT; 38 39 public: 40 /** 41 * @brief constructuor 42 */ 43 vrTexture3D(); 44 45 /** 46 * @brief destructor 47 */ 48 ~vrTexture3D(); 49 50 /** 51 * @brief get texture size 52 * @return texture length 53 */ 54 int getWidth() const; 55 56 /** 57 * @brief get texture height 58 * @return texture height 59 */ 60 int getHeight() const; 61 62 /** 63 * @brief get texture height 64 * @return texture depth 65 */ 66 int getDepth() const; 67 68 /** 69 * @brief set wrap mode 70 */ 71 void setWrapS(TEXWRAP wrap); 72 73 /* 74 * @brief set wrap mode 75 */ 76 void setWrapT(TEXWRAP wrap); 77 78 /** 79 * @brief set wrap mode 80 */ 81 TEXWRAP getWrapS() const; 82 83 /* 84 * @brief set wrap mode 85 */ 86 TEXWRAP getWrapT() const; 87 88 /** 89 * @brief set texture data 90 * @param format texture data format 91 * @param type texture data type 92 * @param width texture width 93 * @param data texture data 94 */ 95 void setPixels(COLORFORMAT format, DATATYPE type, 96 int width, int height, int depth, void *data); 97 98 /** 99 * @brief set texture data 100 * @param internalFormat texture internal data format 101 * @param format texture data format 102 * @param type texture data type 103 * @param width texture width 104 * @param data texture data 105 */ 106 void setPixels(TEXTARGET target, COLORFORMAT internalFormat, 107 COLORFORMAT format, DATATYPE type, 108 int width, int height, int depth, void *data); 109 110 /** 111 * @brief set texture data (NV) 110 112 * @param internalFormat internal colorformat 111 * @param format texture data format 112 * @param type texture data type 113 * @param width texture width 114 * @param data texture data 115 */ 116 void setPixels(COLORFORMAT internalFormat, COLORFORMAT format, DATATYPE type, int width, int height, int depth, void* data); 113 * @param format texture data format 114 * @param type texture data type 115 * @param width texture width 116 * @param data texture data 117 */ 118 void setPixels(COLORFORMAT internalFormat, COLORFORMAT format, 119 DATATYPE type, int width, int height, int depth, void *data); 117 120 118 119 120 121 122 virtual void updatePixels(void*data);121 /** 122 * @brief update pixel data 123 * @param data pixel data 124 */ 125 virtual void updatePixels(void *data); 123 126 }; 124 125 127 126 128 inline int vrTexture3D::getWidth() const 127 129 { 128 130 return _width; 129 131 } 130 132 131 133 inline int vrTexture3D::getHeight() const 132 134 { 133 135 return _height; 134 136 } 135 137 136 138 inline int vrTexture3D::getDepth() const 137 139 { 138 140 return _depth; 139 141 } 140 142 141 143 inline void vrTexture3D::setWrapS(TEXWRAP wrap) 142 144 { 143 145 _wrapS = wrap; 144 146 } 145 147 146 148 inline void vrTexture3D::setWrapT(TEXWRAP wrap) 147 149 { 148 150 _wrapT = wrap; 149 151 } 150 152 151 153 inline TEXWRAP vrTexture3D::getWrapS() const 152 154 { 153 155 return _wrapS; 154 156 } 155 157 156 158 inline TEXWRAP vrTexture3D::getWrapT() const 157 159 { 158 160 return _wrapT; 159 161 } 160 162 -
trunk/packages/vizservers/nanovis/vr3d/vr3d.cpp
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 #include <vr3d/vr3d.h> 3 #ifndef OPENGLES 4 #include <GL/glew.h> 5 #endif 2 6 3 #include <stdio.h> 7 #ifndef WIN328 4 #include <sys/time.h> 9 5 #include <time.h> 10 6 #include <stdint.h> 11 #endif12 7 8 #include <vr3d/vr3d.h> 13 9 14 15 16 #ifdef USE_SOUND 17 18 /* 19 #pragma pack(1) 20 typedef struct { 21 uint32_t Chunk_ID; 22 uint32_t ChunkSize; 23 ... 24 uint16_t AudioFormat; 25 ... 26 } WAV_header_t; 27 #pragma pack() 28 */ 29 30 31 32 int is_big_endian(void) { 33 unsigned char test[4] = { 0x12, 0x34, 0x56, 0x78 }; 34 35 return *((uint32_t *)test) == 0x12345678; 36 } 37 38 39 #include <al.h> 40 #include <alc.h> 41 // TBD.. 42 #include <alut.h> 43 #endif 44 10 #include <GL/glew.h> 45 11 46 12 float _currentTime = 0; … … 49 15 void vrInitializeTimeStamp() 50 16 { 51 #ifdef WIN32 52 _startTime = ::timeGetTime() * 0.001f; 53 #else 54 _startTime = (float) clock() / (float) CLOCKS_PER_SEC; 55 #endif 17 _startTime = (float)clock() / (float)CLOCKS_PER_SEC; 56 18 } 57 19 58 20 float vrGetTimeStamp() 59 21 { 60 //return (_currentTime - _startTime) * 10; 61 return (_currentTime - _startTime); 22 return (_currentTime - _startTime); 62 23 } 63 24 64 25 void vrUpdateTimeStamp() 65 26 { 66 #ifdef WIN32 67 _currentTime = ::timeGetTime() * 0.001f; 68 #else 69 _currentTime = (float) clock() / (float) CLOCKS_PER_SEC; 70 #endif 27 _currentTime = (float)clock() / (float)CLOCKS_PER_SEC; 71 28 } 72 29 73 int initOpenAL(void);74 30 void vrInit() 75 31 { 76 #ifndef OPENGLES 77 ::glewInit(); 78 #endif 79 /* 80 if (! glewIsSupported( "GL_EXT_framebuffer_object GL_NV_depth_buffer_float")) { 81 fprintf( stderr, "Error: This program requires the following capabilities\n"); 82 fprintf( stderr, " OpenGL version 2.0 or later\n"); 83 fprintf( stderr, " Support for the GL_EXT_framebuffer_object extension\n"); 84 fprintf( stderr, " Support for the GL_NV_depth_buffer_float extension\n\n"); 85 exit(-1); 86 } 87 */ 88 89 initOpenAL(); 90 32 ::glewInit(); 91 33 } 92 93 int initOpenAL(void)94 {95 #ifdef USE_SOUND96 alutInit(0, 0);97 //glGetError();98 /*99 ALCcontext *context;100 ALCdevice *device;101 const ALCchar *default_device;102 103 default_device = alcGetString(NULL,104 ALC_DEFAULT_DEVICE_SPECIFIER);105 106 printf("using default device: %s\n", default_device);107 108 if ((device = alcOpenDevice(default_device)) == NULL) {109 fprintf(stderr, "failed to open sound device\n");110 return -1;111 }112 context = alcCreateContext(device, NULL);113 alcMakeCurrentContext(context);114 alcProcessContext(context);115 116 atexit(atexit_openal);117 118 // allocate buffers and sources here using alGenBuffers() and alGenSources()119 120 alGetError();121 */122 123 // Set Listener attributes124 // Position ...125 int error;126 ALfloat listenerPos[]={0.0,0.0,0.0}; // At the origin127 ALfloat listenerVel[]={0.0,0.0,0.0}; // The velocity (no doppler here)128 ALfloat listenerOri[]={0.0,0.0,-1.0, 0.0,1.0,0.0}; // LookAt then Up129 alListenerfv(AL_POSITION,listenerPos);130 if ((error = alGetError()) != AL_NO_ERROR)131 {132 //DisplayOpenALError("alListenerfv :", error);133 printf("alListenerfv : %d\n", error);134 return 0;135 }136 // Velocity ...137 alListenerfv(AL_VELOCITY,listenerVel);138 if ((error = alGetError()) != AL_NO_ERROR)139 {140 //DisplayOpenALError("alListenerfv :", error);141 printf("alListenerfv :%d\n", error);142 return 0;143 }144 // Orientation ...145 alListenerfv(AL_ORIENTATION,listenerOri);146 if ((error = alGetError()) != AL_NO_ERROR)147 {148 //DisplayOpenALError("alListenerfv :", error);149 printf("alListenerfv :%d\n", error);150 return 0;151 }152 #endif153 154 return 0;155 }156 157 34 158 35 void vrExit() 159 36 { 160 #ifdef USE_SOUND161 alutExit();162 #endif163 37 } -
trunk/packages/vizservers/nanovis/vr3d/vrTexture.cpp
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 2 3 #include <vr3d/vrTexture.h> 3 4 4 vrTexture::vrTexture() 5 : 6 _objectID(0), 7 _type(DT_FLOAT), 8 _colorFormat(CF_RGBA), 9 _internalColorFormat(CF_RGBA), 10 _minFilter(TF_LINEAR), 11 _magFilter(TF_LINEAR), 12 _compCount(4) 5 vrTexture::vrTexture() : 6 _objectID(0), 7 _type(DT_FLOAT), 8 _colorFormat(CF_RGBA), 9 _internalColorFormat(CF_RGBA), 10 _minFilter(TF_LINEAR), 11 _magFilter(TF_LINEAR), 12 _compCount(4) 13 13 { 14 14 } 15 15 16 17 16 vrTexture::~vrTexture() 18 17 { 19 18 ::glDeleteTextures(1, &_objectID); 20 19 } -
trunk/packages/vizservers/nanovis/vr3d/vrTexture1D.cpp
r2798 r2824 15 15 #endif 16 16 17 18 vrTexture1D::vrTexture1D(bool depth) 19 : _width(0) 17 vrTexture1D::vrTexture1D(bool depth): 18 _width(0) 20 19 { 21 22 _wrapS =TW_CLAMP_TO_EDGE;20 _target = TT_TEXTURE_1D; 21 _wrapS = TW_CLAMP_TO_EDGE; 23 22 } 24 23 … … 27 26 } 28 27 29 void vrTexture1D::setPixels(COLORFORMAT colorFormat, DATATYPE type, int width, void* data)30 28 void vrTexture1D::setPixels(COLORFORMAT colorFormat, DATATYPE type, 29 int width, void *data) 31 30 { 32 31 setPixels(TT_TEXTURE_1D, colorFormat, colorFormat, type, width, data); 33 32 } 34 33 35 void vrTexture1D::setPixels(TEXTARGET target, COLORFORMAT internalColorFormat, COLORFORMAT colorFormat, DATATYPE type, int width, void* data) 34 void vrTexture1D::setPixels(TEXTARGET target, COLORFORMAT internalColorFormat, 35 COLORFORMAT colorFormat, DATATYPE type, 36 int width, void* data) 36 37 { 37 38 39 40 41 42 38 _target = target; 39 _width = width; 40 _type = type; 41 _internalColorFormat = internalColorFormat; 42 _colorFormat = colorFormat; 43 _compCount = GetNumComponent(_colorFormat); 43 44 44 45 if (_objectID) 45 46 { 46 47 glDeleteTextures(1, &_objectID); 47 48 } 48 49 49 50 51 50 glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 51 glGenTextures(1, &_objectID); 52 glBindTexture(_target, _objectID); 52 53 53 54 55 54 glTexParameteri(_target, GL_TEXTURE_MAG_FILTER, _magFilter); 55 glTexParameteri(_target, GL_TEXTURE_MIN_FILTER, _minFilter); 56 glTexParameteri(_target, GL_TEXTURE_WRAP_S, _wrapS); 56 57 57 glTexImage1D(_target, 0, _internalColorFormat, _width, 0, _colorFormat, _type, data); 58 59 58 glTexImage1D(_target, 0, _internalColorFormat, _width, 0, _colorFormat, _type, data); 60 59 } 61 60 62 void vrTexture1D::updatePixels(void *data)61 void vrTexture1D::updatePixels(void *data) 63 62 { 64 65 66 67 68 69 63 glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 64 glBindTexture(_target, _objectID); 65 glTexParameteri(_target, GL_TEXTURE_WRAP_S, _wrapS); 66 glTexParameteri(_target, GL_TEXTURE_MAG_FILTER, _magFilter); 67 glTexParameteri(_target, GL_TEXTURE_MIN_FILTER, _minFilter); 68 glTexImage1D(_target, 0, _internalColorFormat, _width, 0, _colorFormat, _type, data); 70 69 } 71 -
trunk/packages/vizservers/nanovis/vr3d/vrTexture2D.cpp
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 #include <vr3d/vrTexture2D.h>3 2 4 3 #include <string.h> 5 4 #include <math.h> 6 #include <valarray> 5 #include <valarray> 6 7 #include <vr3d/vrTexture2D.h> 7 8 8 9 #ifdef _WIN32 … … 15 16 #endif 16 17 17 18 vrTexture2D::vrTexture2D(bool depth) 19 : _width(0),_depthTexture(depth)18 vrTexture2D::vrTexture2D(bool depth) : 19 _width(0), 20 _depthTexture(depth) 20 21 { 21 22 23 22 _target = TT_TEXTURE_2D; 23 _wrapT = TW_CLAMP_TO_EDGE; 24 _wrapS =TW_CLAMP_TO_EDGE; 24 25 } 25 26 … … 28 29 } 29 30 30 void vrTexture2D::setPixels(COLORFORMAT colorFormat, DATATYPE type, int width, int height, void* data) 31 void vrTexture2D::setPixels(COLORFORMAT colorFormat, DATATYPE type, 32 int width, int height, void *data) 31 33 32 34 { … … 34 36 #ifndef OPENGLES 35 37 if ((pow(2.0f, (float)log2(width)) != width) && 36 (pow(2.0f, (float)log2(height)) != height)) 37 { 38 if (type == DT_FLOAT) 39 { 40 target = TT_TEXTURE_RECTANGLE; 41 } 42 else 43 { 44 target = TT_TEXTURE_2D; 45 } 46 } 47 else 48 { 49 target = TT_TEXTURE_2D; 50 } 38 (pow(2.0f, (float)log2(height)) != height)) { 39 if (type == DT_FLOAT) { 40 target = TT_TEXTURE_RECTANGLE; 41 } else { 42 target = TT_TEXTURE_2D; 43 } 44 } else { 45 target = TT_TEXTURE_2D; 46 } 51 47 #else 52 48 target = TT_TEXTURE_2D; 53 49 #endif 54 50 55 setPixels(target, colorFormat, 51 setPixels(target, colorFormat, colorFormat, type, width, height, data); 56 52 } 57 53 58 void vrTexture2D::setPixels(TEXTARGET target, COLORFORMAT internalColorFormat, COLORFORMAT colorFormat, DATATYPE type, int width, int height, void* data) 54 void vrTexture2D::setPixels(TEXTARGET target, 55 COLORFORMAT internalColorFormat, 56 COLORFORMAT colorFormat, 57 DATATYPE type, int width, int height, void* data) 59 58 { 60 59 _target = target; 61 62 63 60 _width = width; 61 _height = height; 62 _type = type; 64 63 _internalColorFormat = internalColorFormat; 65 66 64 _colorFormat = colorFormat; 65 _compCount = GetNumComponent(_colorFormat); 67 66 68 if (_objectID) 69 { 70 glDeleteTextures(1, &_objectID); 71 } 67 if (_objectID) { 68 glDeleteTextures(1, &_objectID); 69 } 72 70 73 74 75 76 71 //glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 72 glGenTextures(1, &_objectID); 73 glBindTexture(_target, _objectID); 74 glTexImage2D(_target, 0, _internalColorFormat, _width, _height, 0, _colorFormat, _type, data); 77 75 glTexParameteri(_target, GL_TEXTURE_MAG_FILTER, _magFilter); 78 76 glTexParameteri(_target, GL_TEXTURE_MIN_FILTER, _minFilter); 79 77 80 // TBD... 81 #ifndef OPENGLES 82 if (_depthTexture) 83 { 84 //glTexParameteri(_target, GL_DEPTH_TEXTURE_MODE, GL_INTENSITY); 85 glTexParameteri(_target, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE); 86 87 glTexParameteri(_target, GL_TEXTURE_COMPARE_FUNC, GL_LEQUAL); 88 glTexParameteri(_target, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE); 78 // TBD... 79 if (_depthTexture) { 80 //glTexParameteri(_target, GL_DEPTH_TEXTURE_MODE, GL_INTENSITY); 81 glTexParameteri(_target, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE); 89 82 90 //glDrawBuffer(GL_NONE); 91 //glReadBuffer(GL_NONE); 92 } 93 #endif 83 glTexParameteri(_target, GL_TEXTURE_COMPARE_FUNC, GL_LEQUAL); 84 glTexParameteri(_target, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE); 94 85 86 //glDrawBuffer(GL_NONE); 87 //glReadBuffer(GL_NONE); 88 } 95 89 96 //TBD.. 97 glTexParameterf(_target, GL_TEXTURE_WRAP_S, _wrapS); 98 glTexParameterf(_target, GL_TEXTURE_WRAP_T, _wrapT); 99 100 90 //TBD.. 91 glTexParameterf(_target, GL_TEXTURE_WRAP_S, _wrapS); 92 glTexParameterf(_target, GL_TEXTURE_WRAP_T, _wrapT); 101 93 } 102 94 103 void vrTexture2D::updatePixels(void *data)95 void vrTexture2D::updatePixels(void *data) 104 96 { 105 106 107 108 109 110 111 97 glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 98 glBindTexture(_target, _objectID); 99 glTexParameteri(_target, GL_TEXTURE_WRAP_S, _wrapS); 100 glTexParameteri(_target, GL_TEXTURE_WRAP_S, _wrapT); 101 glTexParameteri(_target, GL_TEXTURE_MAG_FILTER, _magFilter); 102 glTexParameteri(_target, GL_TEXTURE_MIN_FILTER, _minFilter); 103 glTexImage2D(_target, 0, _internalColorFormat, _width, _height, 0, _colorFormat, _type, data); 112 104 } 113 105 -
trunk/packages/vizservers/nanovis/vr3d/vrTexture3D.cpp
r2798 r2824 1 1 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 2 #include <vr3d/vrTexture3D.h>3 2 4 3 #include <string.h> 5 4 #include <math.h> 6 #include <valarray> 5 #include <valarray> 7 6 8 #ifndef OPENGLES 7 #include <vr3d/vrTexture3D.h> 8 9 9 #ifdef _WIN32 10 10 inline unsigned int log2(unsigned int x) … … 16 16 #endif 17 17 18 19 vrTexture3D::vrTexture3D() 20 : _width(0), _height(0), _depth(0) 18 vrTexture3D::vrTexture3D() : 19 _width(0), 20 _height(0), 21 _depth(0) 21 22 { 22 23 24 _wrapS =TW_CLAMP_TO_EDGE;23 _target = TT_TEXTURE_3D; 24 _wrapT = TW_CLAMP_TO_EDGE; 25 _wrapS = TW_CLAMP_TO_EDGE; 25 26 } 26 27 27 28 vrTexture3D::~vrTexture3D() 28 29 { 29 30 30 } 31 31 32 void vrTexture3D::setPixels(COLORFORMAT colorFormat, DATATYPE type, int width, int height, int depth, void* data) 32 void vrTexture3D::setPixels(COLORFORMAT colorFormat, DATATYPE type, 33 int width, int height, int depth, void *data) 33 34 { 34 setPixels(TT_TEXTURE_3D, colorFormat, 35 setPixels(TT_TEXTURE_3D, colorFormat, colorFormat, type, width, height, depth, data); 35 36 } 36 37 37 void vrTexture3D::setPixels(TEXTARGET target, COLORFORMAT internalColorFormat, COLORFORMAT colorFormat, DATATYPE type, int width, int height, int depth, void* data) 38 void vrTexture3D::setPixels(TEXTARGET target, 39 COLORFORMAT internalColorFormat, 40 COLORFORMAT colorFormat, 41 DATATYPE type, 42 int width, int height, int depth, void *data) 38 43 { 39 44 _target = target; 40 41 42 43 45 _width = width; 46 _height = height; 47 _depth = depth; 48 _type = type; 44 49 _internalColorFormat = internalColorFormat; 45 46 50 _colorFormat = colorFormat; 51 _compCount = GetNumComponent(_colorFormat); 47 52 48 if (_objectID) 49 { 50 glDeleteTextures(1, &_objectID); 51 } 53 if (_objectID) { 54 glDeleteTextures(1, &_objectID); 55 } 52 56 53 54 55 56 57 //glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 58 glGenTextures(1, &_objectID); 59 glBindTexture(_target, _objectID); 60 glTexImage3D(_target, 0, _internalColorFormat, _width, _height, _depth, 0, _colorFormat, _type, data) ; 57 61 glTexParameteri(_target, GL_TEXTURE_MAG_FILTER, _magFilter); 58 62 glTexParameteri(_target, GL_TEXTURE_MIN_FILTER, _minFilter); 59 63 60 61 64 //TBD.. 65 glTexParameterf(_target, GL_TEXTURE_WRAP_S, _wrapS); 62 66 glTexParameterf(_target, GL_TEXTURE_WRAP_T, _wrapT); 63 64 65 67 } 66 68 67 69 void vrTexture3D::updatePixels(void* data) 68 70 { 69 glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 70 glBindTexture(_target, _objectID); 71 glTexParameteri(_target, GL_TEXTURE_WRAP_S, _wrapS); 72 glTexParameteri(_target, GL_TEXTURE_WRAP_T, _wrapT); 73 glTexParameteri(_target, GL_TEXTURE_MAG_FILTER, _magFilter); 74 glTexParameteri(_target, GL_TEXTURE_MIN_FILTER, _minFilter); 75 glTexImage3D(_target, 0, _internalColorFormat, _width, _height, _depth, 0, _colorFormat, _type, data); 76 /* 77 glBindTexture(_target, _objectID); 78 glTexSubImage3D(_target, 79 0, 80 0, 81 0, 82 0, 83 _width, 84 _height, 85 _depth, 86 _colorFormat, 87 _type, 88 data); 89 */ 71 glPixelStorei(GL_UNPACK_ALIGNMENT, 1); 72 glBindTexture(_target, _objectID); 73 glTexParameteri(_target, GL_TEXTURE_WRAP_S, _wrapS); 74 glTexParameteri(_target, GL_TEXTURE_WRAP_T, _wrapT); 75 glTexParameteri(_target, GL_TEXTURE_MAG_FILTER, _magFilter); 76 glTexParameteri(_target, GL_TEXTURE_MIN_FILTER, _minFilter); 77 glTexImage3D(_target, 0, _internalColorFormat, _width, _height, _depth, 0, _colorFormat, _type, data); 90 78 } 91 92 #endif
Note: See TracChangeset
for help on using the changeset viewer.