00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __IMG_TileLoader__
00023 #define __IMG_TileLoader__
00024
00025 #include "IMG_API.h"
00026 class UT_Thread;
00027 class PXL_Raster;
00028 class img_ImageLoader;
00029
00030 class IMG_API IMG_TileLoader {
00031 public:
00032 IMG_TileLoader();
00033 ~IMG_TileLoader();
00034
00035 void startServer();
00036 void stopServer();
00037 bool isServerRunning() { return myPort; }
00038
00039
00040 PXL_Raster *lockRaster();
00041
00042 void releaseRaster();
00043
00044 int isStillRendering() const
00045 {
00046 return myRendering || myExpectRender;
00047 }
00048 int isExpecting() const
00049 {
00050 return myExpectRender;
00051 }
00052 void expectRender() { myExpectRender = 1; }
00053
00054
00055 void terminateLoad();
00056
00057 void getYRange(int &min, int &max) const;
00058 int getServerPort() const { return myPort; }
00059 int getTilesRead() const { return myTilesRead; }
00060
00061 void setClearColor(float r, float g, float b, float a);
00062 void setFillAlphaMode(int onoff);
00063
00064 private:
00065 static void *serverThread(void *);
00066
00067 img_ImageLoader *myLoader;
00068 UT_Thread *myThread;
00069 volatile int myPort;
00070 volatile int myTerminate;
00071 int myRendering, myExpectRender;
00072 volatile int myTilesRead;
00073 };
00074
00075 #endif