Implemented methods to retrieve the OpenGL handles from sf::Texture and sf::Shader.

This commit is contained in:
binary1248 2014-08-15 07:13:32 +02:00
parent 650e792350
commit c17486857f
4 changed files with 45 additions and 0 deletions

View File

@ -456,6 +456,18 @@ public:
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void setParameter(const std::string& name, CurrentTextureType); void setParameter(const std::string& name, CurrentTextureType);
////////////////////////////////////////////////////////////
/// \brief Get the underlying OpenGL handle of the shader.
///
/// You shouldn't need to use this function, unless you have
/// very specific stuff to implement that SFML doesn't support,
/// or implement a temporary workaround until a bug is fixed.
///
/// \return OpenGL handle of the shader or 0 if not yet loaded
///
////////////////////////////////////////////////////////////
unsigned int getNativeHandle() const;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Bind a shader for rendering /// \brief Bind a shader for rendering
/// ///

View File

@ -420,6 +420,18 @@ public:
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
Texture& operator =(const Texture& right); Texture& operator =(const Texture& right);
////////////////////////////////////////////////////////////
/// \brief Get the underlying OpenGL handle of the texture.
///
/// You shouldn't need to use this function, unless you have
/// very specific stuff to implement that SFML doesn't support,
/// or implement a temporary workaround until a bug is fixed.
///
/// \return OpenGL handle of the texture or 0 if not yet created
///
////////////////////////////////////////////////////////////
unsigned int getNativeHandle() const;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Bind a texture for rendering /// \brief Bind a texture for rendering
/// ///

View File

@ -456,6 +456,13 @@ void Shader::setParameter(const std::string& name, CurrentTextureType)
} }
////////////////////////////////////////////////////////////
unsigned int Shader::getNativeHandle() const
{
return m_shaderProgram;
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void Shader::bind(const Shader* shader) void Shader::bind(const Shader* shader)
{ {
@ -778,6 +785,13 @@ void Shader::setParameter(const std::string& name, CurrentTextureType)
} }
////////////////////////////////////////////////////////////
unsigned int Shader::getNativeHandle() const
{
return 0;
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void Shader::bind(const Shader* shader) void Shader::bind(const Shader* shader)
{ {

View File

@ -563,6 +563,13 @@ Texture& Texture::operator =(const Texture& right)
} }
////////////////////////////////////////////////////////////
unsigned int Texture::getNativeHandle() const
{
return m_texture;
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
unsigned int Texture::getValidSize(unsigned int size) unsigned int Texture::getValidSize(unsigned int size)
{ {