Обтекание вашей текстуры обернет только всю текстуру, а не вашу часть.

аружил, что все еще существует достаточное количество драйверов, которые не поддерживают текстуры NPOT, поэтому я пытаюсь переоснастить свой 2D-движок (основанный на OpenTK, который, в свою очередь, основан на OpenGL) с поддержкой Texture2D. полагаться на GL_ARB_texture_rectangle. В рамках этого я заставляю все растровые изображения текстуры NPOTS выделять дополнительное пространство до следующего размера степени 2, чтобы они не вызывали ошибок в этих драйверах. Мой вопрос заключается в том, действительно ли мне нужно изменить размер реального растрового изображения и текстуры и выделить всю эту дополнительную память, или есть ли способ сообщить OpenGL, что мне нужна текстура размером с степень 2, но я только собираюсь использовать часть его в левом верхнем углу?

Прямо сейчас мой звонок выглядит так:

GL.TexImage2D(texTarget, 0, PixelInternalFormat.Rgba8, bmpUse.Width, bmpUse.Height, 0, PixelFormat.Bgra, PixelType.UnsignedByte, bits.Scan0);

Это после того, как я сделал bmpUse копией моего реального текстурного растрового изображения с дополнительным пространством справа и снизу.