MFCでopenglを使用して円を描きましたが、今はそのテクスチャを読み込んでバイト配列に格納します。どうやってするか? 私が円を描き、コードの下に使用してテクスチャを保存しようとしたが、それはあなたがウィンドウではなく、テクスチャに描画されているOpenGLテクスチャをバイト配列に保存する
GLfloat glRadius = 0.5f;
GetDlgItem(IDC_SAVE_BUTTON)->EnableWindow(TRUE); // To make button Enabled
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glEnable(GL_TEXTURE_2D);
glGenTextures(2, &m_glTexture[1]);
glBindTexture(GL_TEXTURE_2D, m_glTexture[1]);
glBegin(GL_TRIANGLE_FAN);
glColor3f(0,1,0);
glVertex2d(0, 0);
int nSegments = 100;
GLfloat glAngle ;
for(int nIndex = 0 ;nIndex <= nSegments; nIndex++)
{
glAngle = (nIndex* 2.0f * PI)/ nSegments;
glVertex2d(cos(glAngle) * glRadius , sin(glAngle) * glRadius);
}
glEnd();
glGetTexLevelParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &m_glTextureWidth);
glGetTexLevelParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &m_glTextureHeight);
m_pbyImageData1 = new BYTE[ 4 * (int)m_glTextureWidth * (int)m_glTextureHeight ];
//glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_pbyImageData1);
glReadPixels(0, 0, m_glTextureWidth, m_glTextureHeight, GL_RGBA, GL_UNSIGNED_BYTE, m_pbyImageData1);
glDisable(GL_TEXTURE_2D);
SwapBuffers(m_hDeviceContextDC);
あなたは何を得ていますか?空の配列ですか?ヌルポインタ? –
「働かない」という説明を投稿してもらえますか? –
別の幅nの高さを使用しました。答えが – saf