Backed out changeset 2df13967b746 (bug 1289251)

This commit is contained in:
Sebastian Hengst 2016-09-02 10:25:38 +02:00
parent 7237b5b278
commit 47d3ad2b27
2 changed files with 13 additions and 31 deletions

View File

@ -16,7 +16,6 @@
#include "mozilla/MathAlgorithms.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/widget/CompositorWidget.h"
#include "mozilla/widget/X11CompositorWidget.h"
#include "mozilla/Unused.h"
#include "prenv.h"
@ -1098,7 +1097,13 @@ GLContextProviderGLX::CreateWrappingExisting(void* aContext, void* aSurface)
}
already_AddRefed<GLContext>
CreateForWidget(Display* aXDisplay, Window aXWindow, bool aForceAccelerated)
GLContextProviderGLX::CreateForCompositorWidget(CompositorWidget* aCompositorWidget, bool aForceAccelerated)
{
return CreateForWindow(aCompositorWidget->RealWidget(), aForceAccelerated);
}
already_AddRefed<GLContext>
GLContextProviderGLX::CreateForWindow(nsIWidget* aWidget, bool aForceAccelerated)
{
if (!sGLXLibrary.EnsureInitialized()) {
return nullptr;
@ -1111,17 +1116,19 @@ CreateForWidget(Display* aXDisplay, Window aXWindow, bool aForceAccelerated)
// performance might be suboptimal. But using the existing visual
// is a relatively safe intermediate step.
if (!aXDisplay) {
Display* display = (Display*)aWidget->GetNativeData(NS_NATIVE_COMPOSITOR_DISPLAY);
if (!display) {
NS_ERROR("X Display required for GLX Context provider");
return nullptr;
}
int xscreen = DefaultScreen(aXDisplay);
int xscreen = DefaultScreen(display);
Window window = GET_NATIVE_WINDOW(aWidget);
ScopedXFree<GLXFBConfig> cfgs;
GLXFBConfig config;
int visid;
if (!GLContextGLX::FindFBConfigForWindow(aXDisplay, xscreen, aXWindow, &cfgs,
if (!GLContextGLX::FindFBConfigForWindow(display, xscreen, window, &cfgs,
&config, &visid))
{
return nullptr;
@ -1131,33 +1138,11 @@ CreateForWidget(Display* aXDisplay, Window aXWindow, bool aForceAccelerated)
GLContextGLX* shareContext = GetGlobalContextGLX();
RefPtr<GLContextGLX> gl = GLContextGLX::CreateGLContext(CreateContextFlags::NONE,
caps, shareContext, false,
aXDisplay, aXWindow, config,
display, window, config,
false);
return gl.forget();
}
already_AddRefed<GLContext>
GLContextProviderGLX::CreateForCompositorWidget(CompositorWidget* aCompositorWidget, bool aForceAccelerated)
{
X11CompositorWidget* compWidget = aCompositorWidget->AsX11();
MOZ_ASSERT(compWidget);
return CreateForWidget(compWidget->XDisplay(),
compWidget->XWindow(),
aForceAccelerated);
}
already_AddRefed<GLContext>
GLContextProviderGLX::CreateForWindow(nsIWidget* aWidget, bool aForceAccelerated)
{
Display* display = (Display*)aWidget->GetNativeData(NS_NATIVE_COMPOSITOR_DISPLAY);
Window window = GET_NATIVE_WINDOW(aWidget);
return CreateForWidget(display,
window,
aForceAccelerated);
}
static bool
ChooseConfig(GLXLibrary* glx, Display* display, int screen, const SurfaceCaps& minCaps,
ScopedXFree<GLXFBConfig>* const out_scopedConfigArr,

View File

@ -49,9 +49,6 @@ public:
X11CompositorWidget* AsX11() override { return this; }
CompositorWidgetDelegate* AsDelegate() override { return this; }
Display* XDisplay() const { return mXDisplay; }
Window XWindow() const { return mXWindow; }
protected:
nsWindow* mWidget;