16 #ifndef __IMG_TileDevice__
17 #define __IMG_TileDevice__
29 class IMG_TileInterface;
41 IMG_TILE_BOTTOM_FIRST = 0,
42 IMG_TILE_RANDOM_ORDER = 1,
43 IMG_TILE_TOP_FIRST = 2,
60 static bool isSpecialFileName(
const char *
filename);
65 static bool isNullDeviceName(
const char *
filename);
78 static void registerDevice(IMG_TileDeviceCreator creator,
81 static void unregisterDevice(
const char *
label);
102 virtual const char *className()
const = 0;
109 void setVisibleRegion(
int l,
int r,
int b,
int t);
115 void setRenderSize(
int rwidth,
int rheight);
119 { myDataWindow =
w; }
128 { myRenderWindow =
w; }
133 int tile_device,
int tile_height,
138 virtual int openMulti(
141 int tile_width,
int tile_height,
144 virtual void setWhitePoint(
fpreal white);
148 virtual void checkpoint();
152 { myRenderSourceName.harden(name); }
154 {
return myRenderSourceName; }
176 virtual void writeCustomTag(
const char *tagname,
int size,
177 const char *
const *
values);
181 const char *
const *
values)
183 writeCustomTag(
IMGtagName(tag_id), size, values);
210 virtual int writeTile(
const void *
data,
211 unsigned x0,
unsigned x1,
212 unsigned y0,
unsigned y1) = 0;
220 int floats_per_sample,
224 UT_ASSERT_MSG(0,
"Should be implemented by subclass in relevant cases!");
228 virtual void flush();
230 virtual int close(
bool keep_alive=
false) = 0;
234 virtual int unsafeFlush();
246 virtual bool getNextTile(
int &xl,
int &xr,
int &yb,
int &yt,
253 virtual bool getClickedTile(
int &tx,
int &ty,
float &radius)
const;
255 virtual void resetTileRequestor();
256 virtual int getTileMode()
const;
271 int xres()
const {
return myDisplayWindow.width(); }
272 int yres()
const {
return myDisplayWindow.height(); }
295 void setResolution(
int xres,
int yres,
296 int tilewidth,
int tileheight,
297 int tile_order = IMG_TILE_BOTTOM_FIRST);
306 void mapImageToTile(
int ix,
int iy,
int &tx,
int &ty);
307 void getTileBounds(
int tx,
int ty,
308 int &xl,
int &xr,
int &yb,
int &yt);
310 bool hasDataWindow(
int full_xres,
int full_yres)
const;
318 { myRandomAccess = tile_order; }
322 { myFileCount =
count; }
332 const
UT_DimRect &dataWindow()
const {
return myDataWindow; }
340 int myTileWidth, myTileHeight;
344 IMG_TILE_ORDER myRandomAccess;
346 int myClickedTileXY[2];
347 float myClickedRadius;
348 int myFilterX, myFilterY;
349 int myTileCountX, myTileCountY;
353 IMG_TileInterface *myTiles;
const UT_DimRect & displayWindow() const
GT_API const UT_StringHolder filename
GLuint const GLchar * name
void setTileOrder(IMG_TILE_ORDER tile_order)
Specify the desired tile order.
GLint GLint GLint GLint GLint GLint GLsizei width
virtual float getMouseClickRadius() const
GLint GLsizei const GLuint64 * values
int getDataHeight() const
GLuint GLfloat GLfloat GLfloat x1
const UT_DimRect & renderWindow() const
GLint GLint GLint GLint GLint GLint GLsizei GLsizei height
void writeKnownTag(IMG_TagType tag_id, int size, const char *const *values)
virtual bool getMouseClickPosition(int &x, int &y) const
virtual void setStyleSheets(UT_StringArray &)
#define UT_ASSERT_MSG(ZZ,...)
#define SYS_DEPRECATED_REPLACE(__V__, __R__)
int getTileCountY() const
GLint GLint GLint GLint GLint x
virtual void terminateOnConnectionLost(bool)
virtual bool writeSamples(int nsamples, int floats_per_sample, const UT_Vector3T< int > *samples, const float *data)
void setDeviceRenderWindow(const UT_DimRect &w)
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLint GLsizei const void * data
void setRenderSourceName(const char *name)
GLubyte GLubyte GLubyte GLubyte w
IMG_DataType * getDataTypes()
virtual bool isInteractive() const
GLuint GLfloat GLfloat y0
GLuint GLsizei GLsizei GLchar * label
GLdouble GLdouble GLdouble b
A map of string to various well defined value types.
bool isRandomAccess() const
void setFileCount(int count)
In the open method, the sub-class should set the file count.
int getTileHeight() const
virtual bool wantsHoudiniPort() const
GLdouble GLdouble GLdouble r
GLuint GLfloat GLfloat GLfloat GLfloat y1
GLuint GLuint GLsizei count
DeviceRef newDevice(DeviceType type=DeviceType::Default)
int getTileWidth() const
Query tile width parameters.
const char * getRenderSourceName() const
int getTileCountX() const
IMG_ColorModel * getColorModels()