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;
244 ~ScaledTextureSurface()
override;
246 void allocate(uint width, uint height)
override;
248 uint getWidth()
const override {
return _rgbData.w; }
249 uint getHeight()
const override {
return _rgbData.h; }
252 bool hasPalette()
const override {
return (_palette !=
nullptr); }
259 void setScaler(uint scalerIndex,
int scaleFactor)
override;
285 void allocate(uint width, uint height)
override;
287 bool isDirty()
const override {
return _paletteDirty || Surface::isDirty(); }
289 uint getWidth()
const override {
return _userPixelData.w; }
290 uint getHeight()
const override {
return _userPixelData.h; }
297 void setPalette(uint start, uint colors,
const byte *palData)
override;
305 static bool isSupportedByContext() {
306 return OpenGLContext.shadersSupported
307 && OpenGLContext.multitextureSupported
308 && OpenGLContext.framebufferObjectSupported
310 && OpenGLContext.textureLookupPrecision > 8;
321 GLfloat _clut8Vertices[4*2];
326 byte _palette[4 * 256];
329 #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:294
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
virtual Graphics::PixelFormat getFormat() const =0
Definition: texture.h:164
Definition: texture.h:273
RotationMode
Definition: rotationmode.h:44
Definition: scalerplugin.h:28
virtual const Texture & getGLTexture() const =0