18#ifndef KIS_OPENGL_IMAGE_CONTEXT_H_
19#define KIS_OPENGL_IMAGE_CONTEXT_H_
31#include <tqvaluevector.h>
33#include <koffice_export.h>
39class KisOpenGLImageContext;
40typedef TDESharedPtr<KisOpenGLImageContext> KisOpenGLImageContextSP;
43class KRITACORE_EXPORT KisOpenGLImageContext :
public TQObject ,
public TDEShared {
49 static KisOpenGLImageContextSP getImageContext(KisImageSP image, KisProfile *monitorProfile);
51 KisOpenGLImageContext();
52 virtual ~KisOpenGLImageContext();
58 TQGLWidget *sharedContextWidget()
const;
60 void setMonitorProfile(KisProfile *profile);
61 void setHDRExposure(
float exposure);
63 GLuint backgroundTexture()
const;
65 static const int BACKGROUND_TEXTURE_WIDTH = 32;
66 static const int BACKGROUND_TEXTURE_HEIGHT = 32;
69 GLuint imageTextureTile(
int pixelX,
int pixelY)
const;
71 int imageTextureTileWidth()
const;
72 int imageTextureTileHeight()
const;
79 void setSelectionDisplayEnabled(
bool enable);
86 void update(
const TQRect& imageRect);
101 void sigImageUpdated(TQRect rc);
109 void sigSizeChanged(TQ_INT32 width, TQ_INT32 height);
112 KisOpenGLImageContext(KisImageSP image, KisProfile *monitorProfile);
114 void generateBackgroundTexture();
115 void createImageTextureTiles();
116 void destroyImageTextureTiles();
117 int imageTextureTileIndex(
int x,
int y)
const;
118 void updateImageTextureTiles(
const TQRect& rect);
121 static bool imageCanShareImageContext(KisImageSP image);
124 void slotImageUpdated(TQRect r);
125 void slotImageSizeChanged(TQ_INT32 w, TQ_INT32 h);
129 KisProfile *m_monitorProfile;
131 bool m_displaySelection;
133 GLuint m_backgroundTexture;
135 static const int PREFERRED_IMAGE_TEXTURE_WIDTH = 256;
136 static const int PREFERRED_IMAGE_TEXTURE_HEIGHT = 256;
138 TQValueVector<GLuint> m_imageTextureTiles;
139 int m_imageTextureTileWidth;
140 int m_imageTextureTileHeight;
141 int m_numImageTextureTileColumns;
146 static TQGLWidget *SharedContextWidget;
147 static int SharedContextWidgetRefCount;
149 typedef std::map<KisImageSP, KisOpenGLImageContext*> ImageContextMap;
151 static ImageContextMap imageContextMap;
A colorspace is the definition of a certain color model in Chalk.