1
我正在製作一個遊戲引擎,並且Texture類中的一個功能應該是創建一個具有指定寬度,高度和像素格式的空白紋理。創建一個空白的opengl紋理
我知道如何創建紋理和所有這一切,我也知道我可以使用glTexImage2d格式化爲null作爲數據。然而,我不得不告訴openGL我的數據格式(即使它是空的),這意味着我必須編寫一個函數,將PIXEL_INTERNAL_FORMAT枚舉轉換爲PIXEL_FORMAT和PIXEL_TYPE。
我怎樣才能讓opengl只分配基於PIXEL_INTERNAL_FORMAT的內存?
這就是我的想法。但是,如果我使用DEPTH_COMPONENT作爲PIXEL_INTERNAL_FORMAT創建紋理,那麼如果我使用除DEPTH_COMPONENT以外的其他任何東西作爲PIXEL_FORMAT,則OpenGL會給我一個INVALID_OPERATION錯誤。 – Hannesh 2011-05-20 16:08:47
@Hannesh:你說得對:「如果internalFormat是GL_DEPTH_COMPONENT,GL_DEPTH_COMPONENT16,GL_DEPTH_COMPONENT24或GL_DEPTH_COMPONENT32,並且格式不是GL_DEPTH_COMPONENT,則會生成GL_INVALID_OPERATION。」但是這些特殊情況只有極少數。 – 2011-06-04 16:59:40