// Created by: Kirill GAVRILOV
-// Copyright (c) 2014 OPEN CASCADE SAS
+// Copyright (c) 2013-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
-// This library is free software; you can redistribute it and / or modify it
-// under the terms of the GNU Lesser General Public version 2.1 as published
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//! are declared in this class.
class OpenGl_TextureBufferArb : public OpenGl_VertexBuffer
{
-
+ DEFINE_STANDARD_RTTIEXT(OpenGl_TextureBufferArb, OpenGl_VertexBuffer)
public:
//! Helpful constants
Standard_EXPORT virtual ~OpenGl_TextureBufferArb();
//! Override VBO target
- Standard_EXPORT virtual GLenum GetTarget() const;
+ Standard_EXPORT virtual GLenum GetTarget() const Standard_OVERRIDE;
//! Returns true if TBO is valid.
//! Notice that no any real GL call is performed!
}
//! Destroy object - will release GPU memory if any.
- Standard_EXPORT virtual void Release (const OpenGl_Context* theGlCtx);
+ Standard_EXPORT virtual void Release (OpenGl_Context* theGlCtx) Standard_OVERRIDE;
//! Creates VBO and Texture names (ids) if not yet generated.
//! Data should be initialized by another method.
- Standard_EXPORT bool Create (const Handle(OpenGl_Context)& theGlCtx);
+ Standard_EXPORT bool Create (const Handle(OpenGl_Context)& theGlCtx) Standard_OVERRIDE;
//! Perform TBO initialization with specified data.
//! Existing data will be deleted.
const GLsizei theElemsNb,
const GLfloat* theData);
+ //! Perform TBO initialization with specified data.
+ //! Existing data will be deleted.
+ Standard_EXPORT bool Init (const Handle(OpenGl_Context)& theGlCtx,
+ const GLuint theComponentsNb,
+ const GLsizei theElemsNb,
+ const GLuint* theData);
+
+ //! Perform TBO initialization with specified data.
+ //! Existing data will be deleted.
+ Standard_EXPORT bool Init (const Handle(OpenGl_Context)& theGlCtx,
+ const GLuint theComponentsNb,
+ const GLsizei theElemsNb,
+ const GLushort* theData);
+
+ //! Perform TBO initialization with specified data.
+ //! Existing data will be deleted.
+ Standard_EXPORT bool Init (const Handle(OpenGl_Context)& theGlCtx,
+ const GLuint theComponentsNb,
+ const GLsizei theElemsNb,
+ const GLubyte* theData);
+
//! Bind TBO to specified Texture Unit.
Standard_EXPORT void BindTexture (const Handle(OpenGl_Context)& theGlCtx,
- const GLenum theTextureUnit = GL_TEXTURE0) const;
+ const Graphic3d_TextureUnit theTextureUnit) const;
//! Unbind TBO.
Standard_EXPORT void UnbindTexture (const Handle(OpenGl_Context)& theGlCtx,
- const GLenum theTextureUnit = GL_TEXTURE0) const;
+ const Graphic3d_TextureUnit theTextureUnit) const;
+
+ //! Returns name of TBO.
+ GLuint TextureId() const { return myTextureId; }
+
+ //! Returns internal texture format.
+ GLenum TextureFormat() const { return myTexFormat; }
protected:
GLuint myTextureId; //!< texture id
GLenum myTexFormat; //!< internal texture format
-public:
-
- DEFINE_STANDARD_RTTI(OpenGl_TextureBufferArb) // Type definition
-
};
DEFINE_STANDARD_HANDLE(OpenGl_TextureBufferArb, OpenGl_VertexBuffer)