OPENGL: Store logical texture dimensions in GLTexture.
This commit is contained in:
parent
2b3340474e
commit
1e1272a8c4
2 changed files with 23 additions and 1 deletions
|
@ -46,7 +46,8 @@ static GLuint nextHigher2(GLuint v) {
|
|||
|
||||
GLTexture::GLTexture(GLenum glIntFormat, GLenum glFormat, GLenum glType)
|
||||
: _glIntFormat(glIntFormat), _glFormat(glFormat), _glType(glType),
|
||||
_width(0), _height(0), _texCoords(), _glFilter(GL_NEAREST),
|
||||
_width(0), _height(0), _logicalWidth(0), _logicalHeight(0),
|
||||
_texCoords(), _glFilter(GL_NEAREST),
|
||||
_glTexture(0) {
|
||||
create();
|
||||
}
|
||||
|
@ -112,6 +113,9 @@ void GLTexture::setSize(uint width, uint height) {
|
|||
_height = height;
|
||||
}
|
||||
|
||||
_logicalWidth = width;
|
||||
_logicalHeight = height;
|
||||
|
||||
// If a size is specified, allocate memory for it.
|
||||
if (width != 0 && height != 0) {
|
||||
const GLfloat texWidth = (GLfloat)width / _width;
|
||||
|
|
|
@ -99,9 +99,26 @@ public:
|
|||
*/
|
||||
void updateArea(const Common::Rect &area, const Graphics::Surface &src);
|
||||
|
||||
/**
|
||||
* Query the GL texture's width.
|
||||
*/
|
||||
uint getWidth() const { return _width; }
|
||||
|
||||
/**
|
||||
* Query the GL texture's height.
|
||||
*/
|
||||
uint getHeight() const { return _height; }
|
||||
|
||||
/**
|
||||
* Query the logical texture's width.
|
||||
*/
|
||||
uint getLogicalWidth() const { return _logicalWidth; }
|
||||
|
||||
/**
|
||||
* Query the logical texture's height.
|
||||
*/
|
||||
uint getLogicalHeight() const { return _logicalHeight; }
|
||||
|
||||
/**
|
||||
* Obtain texture coordinates for rectangular drawing.
|
||||
*/
|
||||
|
@ -120,6 +137,7 @@ private:
|
|||
const GLenum _glType;
|
||||
|
||||
uint _width, _height;
|
||||
uint _logicalWidth, _logicalHeight;
|
||||
GLfloat _texCoords[4*2];
|
||||
|
||||
GLint _glFilter;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue