22 #ifndef BACKENDS_GRAPHICS_OPENGL_TEXTURE_H 23 #define BACKENDS_GRAPHICS_OPENGL_TEXTURE_H 25 #include "graphics/opengl/system_headers.h" 26 #include "graphics/opengl/context.h" 27 #include "graphics/opengl/texture.h" 29 #include "graphics/pixelformat.h" 30 #include "graphics/surface.h" 31 #include "graphics/blit.h" 33 #include "common/rect.h" 34 #include "common/rotationmode.h" 78 virtual void allocate(uint width, uint height) = 0;
100 void copyRectToTexture(uint x, uint y, uint w, uint h,
const void *src, uint srcPitch);
107 void fill(uint32 color);
110 void flagDirty() { _allDirty =
true; }
111 virtual bool isDirty()
const {
return _allDirty || !_dirtyArea.
isEmpty(); }
113 virtual uint getWidth()
const = 0;
114 virtual uint getHeight()
const = 0;
137 virtual void setPalette(uint start, uint colors,
const byte *palData) {}
139 virtual void setScaler(uint scalerIndex,
int scaleFactor) {}
151 void clearDirty() { _allDirty =
false; _dirtyArea =
Common::Rect(); }
184 void allocate(uint width, uint height)
override;
186 uint getWidth()
const override {
return _userPixelData.w; }
187 uint getHeight()
const override {
return _userPixelData.h; }
216 void allocate(uint width, uint height)
override;
217 void setMask(
const byte *mask)
override;
221 bool hasPalette()
const override {
return (_palette !=
nullptr); }
224 void setPalette(uint start, uint colors,
const byte *palData)
override;
235 Graphics::FastBlitFunc _blitFunc;
252 ~ScaledTextureSurface()
override;
254 void allocate(uint width, uint height)
override;
256 uint getWidth()
const override {
return _rgbData.w; }
257 uint getHeight()
const override {
return _rgbData.h; }
260 bool hasPalette()
const override {
return (_palette !=
nullptr); }
267 void setScaler(uint scalerIndex,
int scaleFactor)
override;
293 void allocate(uint width, uint height)
override;
295 bool isDirty()
const override {
return _paletteDirty || Surface::isDirty(); }
297 uint getWidth()
const override {
return _userPixelData.w; }
298 uint getHeight()
const override {
return _userPixelData.h; }
305 void setPalette(uint start, uint colors,
const byte *palData)
override;
313 static bool isSupportedByContext() {
314 return OpenGLContext.shadersSupported
315 && OpenGLContext.multitextureSupported
316 && OpenGLContext.framebufferObjectSupported
318 && OpenGLContext.textureLookupPrecision > 8;
329 GLfloat _clut8Vertices[4*2];
334 byte _palette[4 * 256];
337 #endif // !USE_FORCED_GLES
virtual void setColorKey(uint colorKey)
Definition: texture.h:136
Definition: texture.h:211
virtual bool hasPalette() const
Definition: texture.h:127
const Texture & getGLTexture() const override
Definition: texture.h:198
Graphics::PixelFormat getFormat() const override
Definition: texture.h:219
virtual void recreate()=0
virtual void setMask(const byte *mask)
Definition: texture.h:85
virtual void setRotation(Common::RotationMode rotation)=0
Graphics::PixelFormat getFormat() const override
Definition: texture.h:192
bool hasPalette() const override
Definition: texture.h:302
bool hasPalette() const override
Definition: texture.h:221
virtual void allocate(uint width, uint height)=0
void copyRectToTexture(uint x, uint y, uint w, uint h, const void *src, uint srcPitch)
Definition: framebuffer.h:203
virtual void enableLinearFiltering(bool enable)=0
bool isEmpty() const
Definition: rect.h:373
Definition: renderbuffer.h:27
virtual void updateGLTexture()=0
Definition: texture.h:240
virtual Graphics::PixelFormat getFormat() const =0
Definition: texture.h:164
Definition: texture.h:281
RotationMode
Definition: rotationmode.h:44
Definition: scalerplugin.h:28
virtual const Texture & getGLTexture() const =0