本文整理汇总了C++中FrameBuffer::GetBackBuffer方法的典型用法代码示例。如果您正苦于以下问题:C++ FrameBuffer::GetBackBuffer方法的具体用法?C++ FrameBuffer::GetBackBuffer怎么用?C++ FrameBuffer::GetBackBuffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FrameBuffer
的用法示例。
在下文中一共展示了FrameBuffer::GetBackBuffer方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: glXSwapBuffers
void glXSwapBuffers(Display *pDisplay, GLXDrawable drawable)
{
assert(gDrawableBuffers.find(drawable) != gDrawableBuffers.end());
OGL_TRACE(SwapBuffers, GetOGL());
FrameBuffer *fb = gDrawableBuffers[drawable];
fb->Flip();
OGL::GetDDProcTable().pfnSetRenderTarget(OGL::GetDDHandle(), fb->GetBackBuffer(), fb->GetDepthBuffer());
}
示例2: _glXResize
void _glXResize(GLuint width, GLuint height)
{
XID drawable = currentContext->second.drawable;
FrameBuffer *fb = gDrawableBuffers[drawable];
fb->Resize(width, height);
// reset render target in case swap chain was destroyed and recreated on resize
OGL::GetDDProcTable().pfnSetRenderTarget(OGL::GetDDHandle(), fb->GetBackBuffer(), fb->GetDepthBuffer());
}
示例3: glXMakeContextCurrent
Bool glXMakeContextCurrent(Display *pDisplay, GLXDrawable draw, GLXDrawable read, GLXContext ctx)
{
// unbind current context if NULL ctx passed in
if (ctx == NULL)
{
currentContext = contexts.end();
return 1;
}
auto *pState = reinterpret_cast<OGL::State *>(ctx);
if (contexts.find(pState) == currentContext)
{
return 1;
}
auto &xCtxt = contexts[pState];
xCtxt.drawable = draw;
SetOGL(pState);
GLuint width, height;
XWindowAttributes xWindowAttributes = { 0 };
SWRPBuffer *buf;
bool isDisplay;
switch (gDrawables[draw])
{
case X:
XGetWindowAttributes(pDisplay, draw, &xWindowAttributes);
width = xWindowAttributes.width;
height = xWindowAttributes.height;
isDisplay = true;
break;
case PBUFFER:
buf = (SWRPBuffer *)draw;
width = buf->width;
height = buf->height;
isDisplay = false;
break;
default:
assert(0 && "Invalid buffer type");
return 0;
}
// bind render target set to SWR pipeline
FrameBuffer *fb;
if (gDrawableBuffers.find(draw) == gDrawableBuffers.end())
{
// we haven't seen this drawable yet, create a new frame buffer
fb = new FrameBuffer();
fb->Initialize(width, height, draw, xCtxt.pDisplay, xCtxt.pVisInfo, isDisplay);
gDrawableBuffers[draw] = fb;
}
else
{
fb = gDrawableBuffers[draw];
}
OGL::GetDDProcTable().pfnSetRenderTarget(OGL::GetDDHandle(), fb->GetBackBuffer(), fb->GetDepthBuffer());
// according to spec, only set current viewport to draw buffer dimensions if the context hasn't
// been initialized
if (!xCtxt.initialized)
{
pState->mViewport.x = 0;
pState->mViewport.y = 0;
pState->mViewport.width = width;
pState->mViewport.height = height;
pState->mScissor.x = 0;
pState->mScissor.y = 0;
pState->mScissor.width = width;
pState->mScissor.height = height;
xCtxt.initialized = true;
}
currentContext = contexts.find(pState);
return 1;
}