Я использую openGL для перетаскивания изображения (загруженного растрового изображения) и задаюсь вопросом, есть ли какие-то методы/функции для преобразования изображения на экран., чтобы перетащить изображение opengl (MFC)
до сих пор я сделал этот код для загрузки изображения:
void CDisplayControlPanelView::OnDraw(CDC* /*pDC*/)
{
CDisplayControlPanelDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if(!pDoc)
return;
wglMakeCurrent(m_hDC , m_hRC);
RenderScene();
SwapBuffers(m_hDC);
wglMakeCurrent(m_hDC,NULL);
}
void CDisplayControlPanelView::RenderScene()
{
AUX_RGBImageRec* pRGBImage;
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
pRGBImage = auxDIBImageLoadA("D:\\map.bmp");
glDrawPixels(pRGBImage->sizeX, pRGBImage->sizeY, GL_RGB, GL_UNSIGNED_BYTE, pRGBImage->data);
glFlush();
}
Да, это мой первый раз изучать OpenGL. Я найду glTranslate Func. Дайте мне знать, знаете ли вы образцы. Спасибо за ваш ответ. –
[Учебники NeHe] (http://nehe.gamedev.net) охватывают широкий круг тем. – rockeye
glTranslate не работает непосредственно на glDrawPixels. glDrawPixels извлекает из позиции, заданной glRasterPos, которая транслируется по матричному стекю, но имеет несколько побочных эффектов. Например, если точка, заданная glRasterPos, находится за окном после преобразования, растровые операции, такие как glDrawPixels, не будут рисоваться. * Вы не должны использовать glDrawPixels в любом случае! * – datenwolf