2016-04-15 9 views
0

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); 
+0

あなたは何を得ていますか?空の配列ですか?ヌルポインタ? –

+0

「働かない」という説明を投稿してもらえますか? –

+0

別の幅nの高さを使用しました。答えが – saf

答えて

0

仕事doesntの。 glGetTexLevelParameterfvは、バインドされたテクスチャの高さと幅を返します。どちらもベット。

お電話:glReadPixels(0, 0, window_width, window_height, GL_RGBA, GL_UNSIGNED_BYTE, m_pbyImageData1);

+0

結果が出ました。今私の問題は、私は、バイト配列を表示しようとすると、私はサークルだけでなく、緑色の背景を取得している、私は円を描く必要がある、私は背景がどのように表示されるか分からない。私を助けてください。 – saf

+0

私は以下のコードを使用しました – saf

+0

バイト* pbyNewImageData = NULL; pbyNewImageData = newバイト[CIRCLEWIDTH * CIRCLEHEIGHT * 3]; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_TEXTURE_2D); glGenTextures(1、&m_glTexture [1]); glBindTexture(GL_TEXTURE_2D、m_glTexture [1]); glColorMaterial(GL_FRONT、GL_AMBIENT_AND_DIFFUSE); glTexEnvf(GL_TEXTURE_ENV、GL_TEXTURE_ENV_MODE、GL_MODULATE); glTexParameteri(GL_TEXTURE_2D、GL_TEXTURE_MIN_FILTER、GL_NEAREST); – saf

関連する問題