Make sure GlxRenderer frees its resources.
BUG= R=mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1544004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4098 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -21,8 +21,7 @@ namespace webrtc {
|
|||||||
namespace test {
|
namespace test {
|
||||||
|
|
||||||
GlxRenderer::GlxRenderer(size_t width, size_t height)
|
GlxRenderer::GlxRenderer(size_t width, size_t height)
|
||||||
: is_init_(false),
|
: width_(width),
|
||||||
width_(width),
|
|
||||||
height_(height),
|
height_(height),
|
||||||
display_(NULL),
|
display_(NULL),
|
||||||
context_(NULL) {
|
context_(NULL) {
|
||||||
@ -30,6 +29,8 @@ GlxRenderer::GlxRenderer(size_t width, size_t height)
|
|||||||
assert(height > 0);
|
assert(height > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GlxRenderer::~GlxRenderer() { Destroy(); }
|
||||||
|
|
||||||
bool GlxRenderer::Init(const char* window_title) {
|
bool GlxRenderer::Init(const char* window_title) {
|
||||||
if ((display_ = XOpenDisplay(NULL)) == NULL) {
|
if ((display_ = XOpenDisplay(NULL)) == NULL) {
|
||||||
Destroy();
|
Destroy();
|
||||||
@ -90,12 +91,6 @@ bool GlxRenderer::Init(const char* window_title) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GlxRenderer::Destroy() {
|
void GlxRenderer::Destroy() {
|
||||||
if (!is_init_) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
is_init_ = false;
|
|
||||||
|
|
||||||
if (context_ != NULL) {
|
if (context_ != NULL) {
|
||||||
glXMakeCurrent(display_, window_, context_);
|
glXMakeCurrent(display_, window_, context_);
|
||||||
GlRenderer::Destroy();
|
GlRenderer::Destroy();
|
||||||
@ -121,8 +116,6 @@ GlxRenderer* GlxRenderer::Create(const char* window_title, size_t width,
|
|||||||
return glx_renderer;
|
return glx_renderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
GlxRenderer::~GlxRenderer() { Destroy(); }
|
|
||||||
|
|
||||||
void GlxRenderer::Resize(size_t width, size_t height) {
|
void GlxRenderer::Resize(size_t width, size_t height) {
|
||||||
width_ = width;
|
width_ = width;
|
||||||
height_ = height;
|
height_ = height;
|
||||||
|
@ -34,7 +34,6 @@ class GlxRenderer : public GlRenderer {
|
|||||||
void Resize(size_t width, size_t height);
|
void Resize(size_t width, size_t height);
|
||||||
void Destroy();
|
void Destroy();
|
||||||
|
|
||||||
bool is_init_;
|
|
||||||
size_t width_, height_;
|
size_t width_, height_;
|
||||||
|
|
||||||
Display* display_;
|
Display* display_;
|
||||||
|
Reference in New Issue
Block a user