diff --git a/src/add-ons/opengl/mesa/MesaSoftRenderer.cpp b/src/add-ons/opengl/mesa/MesaSoftRenderer.cpp index 1f71a2df7d..683d63c6f3 100644 --- a/src/add-ons/opengl/mesa/MesaSoftRenderer.cpp +++ b/src/add-ons/opengl/mesa/MesaSoftRenderer.cpp @@ -54,9 +54,9 @@ extern const char * color_space_name(color_space space); #endif extern "C" _EXPORT BGLRenderer * -instanciate_gl_renderer(BGLView *view, BGLDispatcher *dispatcher) +instanciate_gl_renderer(BGLView *view, ulong options, BGLDispatcher *dispatcher) { - return new MesaSoftRenderer(view, 0, dispatcher); + return new MesaSoftRenderer(view, options, dispatcher); } diff --git a/src/kits/opengl/GLRendererRoster.cpp b/src/kits/opengl/GLRendererRoster.cpp index cacc862878..48ecfa3877 100644 --- a/src/kits/opengl/GLRendererRoster.cpp +++ b/src/kits/opengl/GLRendererRoster.cpp @@ -18,9 +18,10 @@ -GLRendererRoster::GLRendererRoster(BGLView *view) +GLRendererRoster::GLRendererRoster(BGLView *view, ulong options) : fNextID(0), - fView(view) + fView(view), + fOptions(options) { AddDefaultPaths(); } @@ -127,12 +128,12 @@ GLRendererRoster::CreateRenderer(const entry_ref& ref) if (image < B_OK) return image; - BGLRenderer *(*instanc)(BGLView *view, BGLDispatcher *dispatcher); + BGLRenderer *(*instanc)(BGLView *view, ulong options, BGLDispatcher *dispatcher); status = get_image_symbol(image, "instanciate_gl_renderer", B_SYMBOL_TYPE_TEXT, (void**)&instanc); if (status == B_OK) { - BGLRenderer *renderer = instanc(fView, new BGLDispatcher()); + BGLRenderer *renderer = instanc(fView, fOptions, new BGLDispatcher()); if (AddRenderer(renderer, image, &ref, nodeRef.node) != B_OK) { renderer->Release(); // this will delete the renderer diff --git a/src/kits/opengl/GLRendererRoster.h b/src/kits/opengl/GLRendererRoster.h index c1f80a9ad0..e27bbef108 100644 --- a/src/kits/opengl/GLRendererRoster.h +++ b/src/kits/opengl/GLRendererRoster.h @@ -19,7 +19,7 @@ typedef std::map RendererMap; class GLRendererRoster { public: - GLRendererRoster(BGLView *view); + GLRendererRoster(BGLView *view, ulong options); virtual ~GLRendererRoster(); BGLRenderer *GetRenderer(int32 id = 0); @@ -34,6 +34,7 @@ class GLRendererRoster { RendererMap fRenderers; int32 fNextID; BGLView *fView; + ulong fOptions; }; #endif /* _GLRENDERER_ROSTER_H */ diff --git a/src/kits/opengl/GLView.cpp b/src/kits/opengl/GLView.cpp index 90d9506cc7..f01219891a 100644 --- a/src/kits/opengl/GLView.cpp +++ b/src/kits/opengl/GLView.cpp @@ -34,7 +34,7 @@ BGLView::BGLView(BRect rect, char *name, ulong resizingMode, ulong mode, ulong o : BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS), // | B_FULL_UPDATE_ON_RESIZE) fRenderer(NULL) { - fRoster = new GLRendererRoster(this); + fRoster = new GLRendererRoster(this, options); fRenderer = fRoster->GetRenderer(); if (!fRenderer) { fprintf(stderr, "no renderer found! \n");