use shared_ptr for HeadlessDisplay in HeadlessView

This commit is contained in:
Mike Morris
2014-10-06 18:05:10 -04:00
parent 8b06b65f35
commit 41dac96408
2 changed files with 10 additions and 8 deletions

View File

@@ -5,18 +5,18 @@
namespace mbgl {
HeadlessView::HeadlessView() : display_(new HeadlessDisplay()) {
HeadlessView::HeadlessView() : display_ptr(std::make_shared<HeadlessDisplay>()) {
createContext();
}
HeadlessView::HeadlessView(HeadlessDisplay *display)
: display_(display) {
HeadlessView::HeadlessView(HeadlessDisplay &display)
: display_ptr(std::make_shared<HeadlessDisplay>(display)) {
createContext();
}
void HeadlessView::createContext() {
#if MBGL_USE_CGL
CGLError error = CGLCreateContext(display_->pixelFormat, NULL, &gl_context);
CGLError error = CGLCreateContext(display_ptr->pixelFormat, NULL, &gl_context);
if (error) {
fprintf(stderr, "Error creating GL context object\n");
return;
@@ -30,8 +30,8 @@ void HeadlessView::createContext() {
#endif
#if MBGL_USE_GLX
x_display = display_->x_display;
x_info = display_->x_info;
x_display = display_ptr->x_display;
x_info = display_ptr->x_info;
gl_context = glXCreateContext(x_display, x_info, 0, GL_TRUE);
if (gl_context == nullptr) {

View File

@@ -11,6 +11,8 @@
#include <mbgl/map/view.hpp>
#include <mbgl/platform/gl.hpp>
#include <memory>
namespace mbgl {
class HeadlessDisplay;
@@ -18,7 +20,7 @@ class HeadlessDisplay;
class HeadlessView : public View {
public:
HeadlessView();
HeadlessView(HeadlessDisplay *display);
HeadlessView(HeadlessDisplay &display);
~HeadlessView();
void createContext();
@@ -36,7 +38,7 @@ private:
private:
HeadlessDisplay *display_;
std::shared_ptr<HeadlessDisplay> display_ptr;
#if MBGL_USE_CGL
CGLContextObj gl_context;