File indexing completed on 2026-07-15 08:26:00
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _OpenGl_TextureBuffer_H__
0016 #define _OpenGl_TextureBuffer_H__
0017
0018 #include <Graphic3d_TextureUnit.hxx>
0019 #include <OpenGl_Buffer.hxx>
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 class OpenGl_TextureBuffer : public OpenGl_Buffer
0032 {
0033 DEFINE_STANDARD_RTTIEXT(OpenGl_TextureBuffer, OpenGl_Buffer)
0034 public:
0035
0036 static const unsigned int NO_TEXTURE = 0;
0037
0038 public:
0039
0040 Standard_EXPORT OpenGl_TextureBuffer();
0041
0042
0043 Standard_EXPORT virtual ~OpenGl_TextureBuffer();
0044
0045
0046 Standard_EXPORT virtual unsigned int GetTarget() const Standard_OVERRIDE;
0047
0048
0049
0050 bool IsValid() const { return OpenGl_Buffer::IsValid() && myTextureId != NO_TEXTURE; }
0051
0052
0053 Standard_EXPORT virtual void Release(OpenGl_Context* theGlCtx) Standard_OVERRIDE;
0054
0055
0056
0057 Standard_EXPORT bool Create(const Handle(OpenGl_Context)& theGlCtx) Standard_OVERRIDE;
0058
0059
0060
0061 Standard_EXPORT bool Init(const Handle(OpenGl_Context)& theGlCtx,
0062 const unsigned int theComponentsNb,
0063 const Standard_Integer theElemsNb,
0064 const float* theData);
0065
0066
0067
0068 Standard_EXPORT bool Init(const Handle(OpenGl_Context)& theGlCtx,
0069 const unsigned int theComponentsNb,
0070 const Standard_Integer theElemsNb,
0071 const unsigned int* theData);
0072
0073
0074
0075 Standard_EXPORT bool Init(const Handle(OpenGl_Context)& theGlCtx,
0076 const unsigned int theComponentsNb,
0077 const Standard_Integer theElemsNb,
0078 const unsigned short* theData);
0079
0080
0081
0082 Standard_EXPORT bool Init(const Handle(OpenGl_Context)& theGlCtx,
0083 const unsigned int theComponentsNb,
0084 const Standard_Integer theElemsNb,
0085 const Standard_Byte* theData);
0086
0087
0088 Standard_EXPORT void BindTexture(const Handle(OpenGl_Context)& theGlCtx,
0089 const Graphic3d_TextureUnit theTextureUnit) const;
0090
0091
0092 Standard_EXPORT void UnbindTexture(const Handle(OpenGl_Context)& theGlCtx,
0093 const Graphic3d_TextureUnit theTextureUnit) const;
0094
0095
0096 unsigned int TextureId() const { return myTextureId; }
0097
0098
0099 unsigned int TextureFormat() const { return myTexFormat; }
0100
0101 protected:
0102 unsigned int myTextureId;
0103 unsigned int myTexFormat;
0104 };
0105
0106 DEFINE_STANDARD_HANDLE(OpenGl_TextureBuffer, OpenGl_Buffer)
0107
0108 #endif