AndroidNativeWindow.h |
|
1411 |
AndroidSurfaceTexture.cpp |
bpp |
6046 |
AndroidSurfaceTexture.h |
|
878 |
AutoMappable.h |
|
2137 |
Colorspaces.cpp |
|
13460 |
Colorspaces.h |
|
27412 |
ForceDiscreteGPUHelperCGL.h |
This RAII helper guarantees that we're on the discrete GPU during its
lifetime.
As long as any ForceDiscreteGPUHelperCGL object is alive, we're on the
discrete GPU.
|
1196 |
GfxTexturesReporter.cpp |
static |
2034 |
GfxTexturesReporter.h |
|
2849 |
GLBlitHelper.cpp |
|
63355 |
GLBlitHelper.h |
Buffer blitting helper |
10646 |
GLBlitHelperD3D.cpp |
|
13100 |
GLConsts.h |
GENERATED FILE, DO NOT MODIFY DIRECTLY.
This is a file generated directly from the official OpenGL registry
xml available http://www.opengl.org/registry/#specfiles.
To generate this file, see tutorial in 'GLConsts.py'.
|
490398 |
GLConsts.py |
This script will regenerate and update GLConsts.h.
Step 1:
Download the last gl.xml, egl.xml, glx.xml and wgl.xml from
http://www.opengl.org/registry/#specfiles into some XML_DIR:
wget https://www.khronos.org/registry/OpenGL/xml/gl.xml
wget https://www.khronos.org/registry/OpenGL/xml/glx.xml
wget https://www.khronos.org/registry/OpenGL/xml/wgl.xml
wget https://www.khronos.org/registry/EGL/api/egl.xml
Step 2:
`py ./GLConsts.py <XML_DIR>`
Step 3:
Do not add the downloaded XML in the patch
Step 4:
Enjoy =)
|
4288 |
GLContext.cpp |
|
105611 |
GLContext.h |
Returns true if the context is using ANGLE. This should only be overridden
for an ANGLE implementation.
|
122818 |
GLContextCGL.h |
|
2217 |
GLContextEAGL.h |
|
1716 |
GLContextEGL.h |
|
4789 |
GLContextFeatures.cpp |
The (desktop) OpenGL version that provides this feature |
22404 |
GLContextGLX.h |
|
2781 |
GLContextProvider.h |
|
2644 |
GLContextProviderCGL.mm |
static |
12528 |
GLContextProviderEAGL.mm |
namespace gl |
4586 |
GLContextProviderEGL.cpp |
|
40121 |
GLContextProviderGLX.cpp |
functions that were in GLX 1.0 |
27343 |
GLContextProviderImpl.h |
Create a context that renders to the surface of the widget represented by
the compositor widget that is passed in. The context is always created
with an RGB pixel format, with no alpha, depth or stencil.
If any of those features are needed, either use a framebuffer, or
use CreateOffscreen.
This context will attempt to share resources with all other window
contexts. As such, it's critical that resources allocated that are not
needed by other contexts be deleted before the context is destroyed.
The GetSharedContext() method will return non-null if sharing
was successful.
Note: a context created for a widget /must not/ hold a strong
reference to the widget; otherwise a cycle can be created through
a GL layer manager.
@param aCompositorWidget Widget whose surface to create a context for
@param aForceAccelerated true if only accelerated contexts are allowed
@return Context to use for the window
|
2291 |
GLContextProviderLinux.cpp |
static |
1916 |
GLContextProviderNull.cpp |
namespace gl |
946 |
GLContextProviderWGL.cpp |
ScopedWindow::~ScopedWindow()
{
if (mDC) {
MOZ_ALWAYS_TRUE( ReleaseDC(mDC) );
}
if (mWindow) {
MOZ_ALWAYS_TRUE( DestroyWindow(mWindow) );
}
}
|
17185 |
GLContextSymbols.h |
This file should only be included by GLContext.h, and should be
autogenerated in the future.
|
27021 |
GLContextTypes.h |
Don't force discrete GPU to be used (if applicable) |
1694 |
GLContextWGL.h |
|
1649 |
GLDebugUtils.cpp |
|
2111 |
GLDebugUtils.h |
|
501 |
GLDefs.h |
|
4349 |
GLLibraryEGL.cpp |
|
34119 |
GLLibraryEGL.h |
Known GL extensions that can be queried by
IsExtensionSupported. The results of this are cached, and as
such it's safe to use this even in performance critical code.
If you add to this array, remember to add to the string names
in GLLibraryEGL.cpp.
|
37309 |
GLLibraryLoader.cpp |
|
1606 |
GLLibraryLoader.h |
|
1315 |
GLReadTexImageHelper.cpp |
This might be overkill, but assure that we don't access out-of-bounds |
20181 |
GLReadTexImageHelper.h |
Read the image data contained in aTexture, and return it as an
ImageSurface. If GL_RGBA is given as the format, a
SurfaceFormat::A8R8G8B8_UINT32 surface is returned. Not implemented yet: If
GL_RGB is given as the format, a SurfaceFormat::X8R8G8B8_UINT32 surface is
returned. If GL_LUMINANCE is given as the format, a SurfaceFormat::A8
surface is returned.
THIS IS EXPENSIVE. It is ridiculously expensive. Only do this
if you absolutely positively must, and never in any performance
critical path.
NOTE: aShaderProgram is really mozilla::layers::ShaderProgramType. It is
passed as int to eliminate including LayerManagerOGLProgram.h here.
|
3124 |
GLScreenBuffer.cpp |
|
3888 |
GLScreenBuffer.h |
GLScreenBuffer is the abstraction for the "default framebuffer" used
by an offscreen GLContext. Since it's only for offscreen GLContext's,
it's only useful for things like WebGL, and is NOT used by the
compositor's GLContext. Remember that GLContext provides an abstraction
so that even if you want to draw to the 'screen', even if that's not
actually the screen, just draw to 0. This GLScreenBuffer class takes the
logic handling out of GLContext.
|
2560 |
GLTextureImage.cpp |
= gfx::IntPoint(0, 0) |
15586 |
GLTextureImage.h |
A TextureImage provides a mechanism to synchronize data from a
surface to a texture in the server. TextureImages are associated
with one and only one GLContext.
|
9953 |
GLTypes.h |
#if !defined(__gltypes_h_) && !defined(__gl_h_) |
2866 |
GLUploadHelpers.cpp |
|
20463 |
GLUploadHelpers.h |
Uploads image data to an OpenGL texture, initializing the texture
first if necessary.
\param gl The GL Context to use.
\param aData Start of image data of surface to upload.
Corresponds to the first pixel of the texture.
\param aDataSize The image data's size.
\param aStride The image data's stride.
\param aFormat The image data's format.
\param aDstRegion Region of the texture to upload.
\param aTexture The OpenGL texture to use. Must refer to a valid texture.
\param aSize The full size of the texture.
\param aOutUploadSize If set, the number of bytes the texture requires will
be returned here.
\param aNeedInit Indicates whether a new texture must be allocated.
\param aTextureUnit The texture unit used temporarily to upload the surface.
This may be overridden, so clients should not rely on
the aTexture being bound to aTextureUnit after this call,
or even on aTextureUnit being active.
\param aTextureTarget The texture target to use.
\return Surface format of this texture.
|
2976 |
GLXLibrary.h |
GLX 1.3 and later |
10141 |
gtest |
|
|
HeapCopyOfStackArray.h |
|
1400 |
moz.build |
|
4419 |
MozFramebuffer.cpp |
static |
7698 |
MozFramebuffer.h |
|
3722 |
ScopedGLHelpers.cpp |
ScopedGLState - Wraps glEnable/glDisable. ********************************* |
15298 |
ScopedGLHelpers.h |
|
5807 |
SharedSurface.cpp |
static |
4006 |
SharedSurface.h |
SharedSurface abstracts an actual surface (can be a GL texture, but
not necessarily) that handles sharing.
Its specializations are:
SharedSurface_Basic (client-side bitmap, does readback)
SharedSurface_GLTexture
SharedSurface_EGLImage
SharedSurface_ANGLEShareHandle
|
5685 |
SharedSurfaceAndroidHardwareBuffer.cpp |
static |
5312 |
SharedSurfaceAndroidHardwareBuffer.h |
namespace mozilla |
2008 |
SharedSurfaceANGLE.cpp |
static |
6945 |
SharedSurfaceANGLE.h |
namespace mozilla |
2228 |
SharedSurfaceD3D11Interop.cpp |
Sample Code for WGL_NV_DX_interop2:
Example: Render to Direct3D 11 backbuffer with openGL:
// create D3D11 device, context and swap chain.
ID3D11Device *device;
ID3D11DeviceContext *devCtx;
IDXGISwapChain *swapChain;
DXGI_SWAP_CHAIN_DESC scd;
<set appropriate swap chain parameters in scd>
hr = D3D11CreateDeviceAndSwapChain(
NULL, // pAdapter
D3D_DRIVER_TYPE_HARDWARE, // DriverType
NULL, // Software
0, // Flags (Do not set
// D3D11_CREATE_DEVICE_SINGLETHREADED)
NULL, // pFeatureLevels
0, // FeatureLevels
D3D11_SDK_VERSION, // SDKVersion
&scd, // pSwapChainDesc
&swapChain, // ppSwapChain
&device, // ppDevice
NULL, // pFeatureLevel
&devCtx); // ppImmediateContext
// Fetch the swapchain backbuffer
ID3D11Texture2D *dxColorbuffer;
swapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID *)&dxColorbuffer);
// Create depth stencil texture
ID3D11Texture2D *dxDepthBuffer;
D3D11_TEXTURE2D_DESC depthDesc;
depthDesc.Usage = D3D11_USAGE_DEFAULT;
<set other depthDesc parameters appropriately>
// Create Views
ID3D11RenderTargetView *colorBufferView;
D3D11_RENDER_TARGET_VIEW_DESC rtd;
<set rtd parameters appropriately>
device->CreateRenderTargetView(dxColorbuffer, &rtd, &colorBufferView);
ID3D11DepthStencilView *depthBufferView;
D3D11_DEPTH_STENCIL_VIEW_DESC dsd;
<set dsd parameters appropriately>
device->CreateDepthStencilView(dxDepthBuffer, &dsd, &depthBufferView);
// Attach back buffer and depth texture to redertarget for the device.
devCtx->OMSetRenderTargets(1, &colorBufferView, depthBufferView);
// Register D3D11 device with GL
HANDLE gl_handleD3D;
gl_handleD3D = wglDXOpenDeviceNV(device);
// register the Direct3D color and depth/stencil buffers as
// renderbuffers in opengl
GLuint gl_names[2];
HANDLE gl_handles[2];
glGenRenderbuffers(2, gl_names);
gl_handles[0] = wglDXRegisterObjectNV(gl_handleD3D, dxColorBuffer,
gl_names[0],
GL_RENDERBUFFER,
WGL_ACCESS_READ_WRITE_NV);
gl_handles[1] = wglDXRegisterObjectNV(gl_handleD3D, dxDepthBuffer,
gl_names[1],
GL_RENDERBUFFER,
WGL_ACCESS_READ_WRITE_NV);
// attach the Direct3D buffers to an FBO
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_RENDERBUFFER, gl_names[0]);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
GL_RENDERBUFFER, gl_names[1]);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
GL_RENDERBUFFER, gl_names[1]);
while (!done) {
<direct3d renders to the render targets>
// lock the render targets for GL access
wglDXLockObjectsNVX(gl_handleD3D, 2, gl_handles);
<opengl renders to the render targets>
// unlock the render targets
wglDXUnlockObjectsNVX(gl_handleD3D, 2, gl_handles);
<direct3d renders to the render targets and presents
the results on the screen>
}
|
16432 |
SharedSurfaceD3D11Interop.h |
namespace gl |
2250 |
SharedSurfaceDMABUF.cpp |
static |
5089 |
SharedSurfaceDMABUF.h |
SHARED_SURFACE_DMABUF_H_ |
1987 |
SharedSurfaceEGL.cpp |
static |
8837 |
SharedSurfaceEGL.h |
namespace mozilla |
3486 |
SharedSurfaceGL.cpp |
static |
1391 |
SharedSurfaceGL.h |
|
1156 |
SharedSurfaceIO.cpp |
static |
3379 |
SharedSurfaceIO.h |
namespace mozilla |
1790 |
SurfaceTypes.h |
|
771 |
WGLLibrary.h |
struct ScopedDC
{
const HDC mDC;
ScopedDC() = delete;
virtual ~ScopedDC() = 0;
};
struct WindowDC final : public ScopedDC
{
const HWND mWindow;
WindowDC() = delete;
~WindowDC();
};
struct PBufferDC final : public ScopedDC
{
const HWND mWindow;
PBufferDC() = delete;
~PBufferDC();
};
|
3802 |