#include "hwRendererHelperGL.h"
#include "hwApiTextureTestStrings.h"
#include <maya/MTextureManager.h>
#include <maya/MRenderTargetManager.h>
#include <maya/MGLFunctionTable.h>
#include <maya/MHardwareRenderer.h>
: hwRendererHelper(renderer)
{
}
hwRendererHelperGL::~hwRendererHelperGL()
{
}
{
_OPENMAYA_DEPRECATION_PUSH_AND_DISABLE_WARNING
_OPENMAYA_POP_WARNING
if (gGLFT == NULL || gGLFT->extensionExists( kMGLext_frame_buffer_object ) == false)
return false;
if (texture == NULL || target == NULL)
return false;
if (pTextureId == NULL || pTargetId == NULL)
return false;
return false;
MGLint srcX0 = 0;
MGLint srcY0 = textureDesc.
fHeight;
MGLint srcX1 = textureDesc.
fWidth;
MGLint srcY1 = 0;
MGLint dstX0 = 0;
MGLint dstY0 = 0;
MGLint dstX1 = targetDesc.
width();
MGLint dstY1 = targetDesc.
height();
MGLuint framebuffers[2] = {0, 0};
gGLFT->glGenFramebuffersEXT(2, framebuffers);
if (framebuffers[0] == 0 || framebuffers[1] == 0)
return false;
gGLFT->glBindFramebufferEXT(MGL_READ_FRAMEBUFFER, framebuffers[0]);
gGLFT->glFramebufferTexture2DEXT(MGL_READ_FRAMEBUFFER, MGL_COLOR_ATTACHMENT0, MGL_TEXTURE_2D, *pTextureId, 0);
gGLFT->glBindFramebufferEXT(MGL_DRAW_FRAMEBUFFER, framebuffers[1]);
gGLFT->glFramebufferTexture2DEXT(MGL_DRAW_FRAMEBUFFER, MGL_COLOR_ATTACHMENT0, MGL_TEXTURE_2D, *pTargetId, 0);
gGLFT->glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, MGL_COLOR_BUFFER_BIT, MGL_LINEAR);
gGLFT->glBindFramebufferEXT(MGL_FRAMEBUFFER, 0);
gGLFT->glDeleteFramebuffersEXT(2, framebuffers);
return true;
}