\r
Surface::~Surface()\r
{\r
- deleteResources();\r
+ Surface::deleteResources();\r
}\r
\r
bool Surface::initialize()\r
frameBuffer = nullptr;\r
}\r
\r
+WindowSurface::~WindowSurface()\r
+{\r
+ WindowSurface::deleteResources();\r
+}\r
+\r
bool WindowSurface::initialize()\r
{\r
ASSERT(!frameBuffer && !backBuffer && !depthStencil);\r
this->largestPBuffer = largestPBuffer;\r
}\r
\r
+PBufferSurface::~PBufferSurface()\r
+{\r
+ PBufferSurface::deleteResources();\r
+}\r
+\r
void PBufferSurface::swap()\r
{\r
// No effect\r
return 0;\r
}\r
\r
+void PBufferSurface::deleteResources()\r
+{\r
+}\r
+\r
}\r
public:\r
virtual bool initialize();\r
virtual void swap() = 0;\r
- \r
+\r
virtual egl::Image *getRenderTarget();\r
virtual egl::Image *getDepthStencil();\r
\r
Texture *texture;\r
\r
bool reset(int backbufferWidth, int backbufferHeight);\r
- \r
+\r
const Config *const config; // EGL config surface was created with\r
EGLint height; // Height of surface\r
EGLint width; // Width of surface\r
{\r
public:\r
WindowSurface(Display *display, const egl::Config *config, EGLNativeWindowType window);\r
+ ~WindowSurface() override;\r
\r
bool initialize() override;\r
\r
{\r
public:\r
PBufferSurface(Display *display, const egl::Config *config, EGLint width, EGLint height, EGLenum textureFormat, EGLenum textureTarget, EGLBoolean largestPBuffer);\r
+ ~PBufferSurface() override;\r
\r
bool isPBufferSurface() const override { return true; }\r
void swap() override;\r
\r
EGLNativeWindowType getWindowHandle() const override;\r
+\r
+private:\r
+ void deleteResources() override;\r
};\r
}\r
\r
\r
Float4 &operator[](int i);\r
Vector4f &operator=(const Vector4f &rhs);\r
- \r
+\r
Float4 x;\r
Float4 y;\r
Float4 z;\r
\r
~RegisterArray()\r
{\r
- delete[] x;\r
- delete[] y;\r
- delete[] z;\r
- delete[] w;\r
+ if(dynamic)\r
+ {\r
+ delete x;\r
+ delete y;\r
+ delete z;\r
+ delete w;\r
+ }\r
+ else\r
+ {\r
+ delete[] x;\r
+ delete[] y;\r
+ delete[] z;\r
+ delete[] w;\r
+ }\r
}\r
\r
Register operator[](int i)\r