guiOffscreenCanvas.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef _GUIOFFSCREENCANVAS_H_
  2. #define _GUIOFFSCREENCANVAS_H_
  3. #include "math/mMath.h"
  4. #include "gui/core/guiCanvas.h"
  5. #include "core/util/tVector.h"
  6. #ifndef _MATTEXTURETARGET_H_
  7. #include "materials/matTextureTarget.h"
  8. #endif
  9. class GuiTextureDebug;
  10. class GuiOffscreenCanvas : public GuiCanvas
  11. {
  12. public:
  13. typedef GuiCanvas Parent;
  14. GuiOffscreenCanvas();
  15. ~GuiOffscreenCanvas();
  16. bool onAdd();
  17. void onRemove();
  18. void renderFrame(bool preRenderOnly, bool bufferSwap);
  19. Point2I getWindowSize();
  20. Point2I getCursorPos();
  21. void setCursorPos(const Point2I &pt);
  22. void showCursor(bool state);
  23. bool isCursorShown();
  24. void _onTextureEvent( GFXTexCallbackCode code );
  25. void _setupTargets();
  26. void _teardownTargets();
  27. NamedTexTargetRef getTarget() { return &mNamedTarget; }
  28. void markDirty() { mTargetDirty = true; }
  29. static void initPersistFields();
  30. DECLARE_CONOBJECT(GuiOffscreenCanvas);
  31. protected:
  32. GFXTextureTargetRef mTarget;
  33. NamedTexTarget mNamedTarget;
  34. GFXTexHandle mTargetTexture;
  35. GFXFormat mTargetFormat;
  36. Point2I mTargetSize;
  37. String mTargetName;
  38. bool mTargetDirty;
  39. bool mDynamicTarget;
  40. public:
  41. static Vector<GuiOffscreenCanvas*> sList;
  42. };
  43. #endif