PolyScreen.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * PolyScreen.h
  3. * TAU
  4. *
  5. * Created by Ivan Safrin on 3/13/08.
  6. * Copyright 2008 Ivan Safrin. All rights reserved.
  7. *
  8. */
  9. // @package Screen
  10. #pragma once
  11. #include "PolyString.h"
  12. #include "PolyGlobals.h"
  13. #include "PolyScreenEntity.h"
  14. #include "PolyRenderer.h"
  15. #include "PolyInputEvent.h"
  16. #include "PolyCoreServices.h"
  17. #include <vector>
  18. #include <algorithm>
  19. #include "PolyScreenEvent.h"
  20. using namespace std;
  21. namespace Polycode {
  22. class _PolyExport Screen : public EventDispatcher {
  23. public:
  24. Screen();
  25. ~Screen();
  26. ScreenEntity* addChild(ScreenEntity *newEntity);
  27. ScreenEntity* removeChild(ScreenEntity *entityToRemove);
  28. void setScreenOffset(float x, float y);
  29. Vector2 getScreenOffset();
  30. virtual void Shutdown();
  31. virtual void Update();
  32. ScreenEntity *getEntityAt(float x, float y);
  33. void Render();
  34. void setRenderer(Renderer *renderer);
  35. void setScreenShader(String shaderName);
  36. void handleEvent(Event *event);
  37. int getHighestZIndex();
  38. void sortChildren();
  39. static bool cmpZindex(const ScreenEntity *left, const ScreenEntity *right);
  40. void handleInputEvent(InputEvent *inputEvent);
  41. bool hasFilterShader();
  42. void drawFilter();
  43. bool Lua_EntitiesEqual(ScreenEntity *ent1, ScreenEntity *ent2) { return ent1 == ent2; }
  44. ScreenEntity *getRootEntity() { return rootEntity; }
  45. bool enabled;
  46. protected:
  47. ScreenEntity *rootEntity;
  48. Vector2 offset;
  49. Renderer *renderer;
  50. ScreenEntity *focusChild;
  51. vector <ScreenEntity*> children;
  52. Material *filterShaderMaterial;
  53. Texture *originalSceneTexture;
  54. Texture *zBufferSceneTexture;
  55. vector<ShaderBinding*> localShaderOptions;
  56. bool _hasFilterShader;
  57. };
  58. }