NPOTテクスチャをサポートしていないドライバーがまだかなりの数あることを発見したので、代わりに2Dエンジン(OpenTKに基づいており、OpenGLに基づいている)をTexture2Dサポートに後付けしようとしています。 GL_ARB_texture_rectangleに依存すること。この一環として、すべてのNPOTSテクスチャビットマップに、次の2の累乗サイズまで余分なスペースを割り当てるように強制しているため、これらのドライバーでエラーが発生することはありません。私の質問は、実際のビットマップとテクスチャのサイズを変更して、余分なメモリをすべて割り当てる必要があるのか、それとも2乗のサイズのテクスチャが必要であることをOpenGLに伝える方法があるのか、ということです。その一部は左上にありますか?
現在、私の電話は次のようになっています。
GL.TexImage2D(texTarget, 0, PixelInternalFormat.Rgba8, bmpUse.Width, bmpUse.Height, 0, PixelFormat.Bgra, PixelType.UnsignedByte, bits.Scan0);
これは、bmpUseを、右と下に余分なスペースがある実際のテクスチャビットマップのコピーにした後です。