Код: Выделить всё
The program '[2260] Rendering.exe' has exited with code 3221225477 (0xc0000005) 'Access violation'.
Код: Выделить всё
Bitmap bitmap = new Bitmap("../../../images/container.jpg");
var texture = glGenTexture();
glBindTexture(GL_TEXTURE_2D, texture);
// At this point the code dies with the above mentioned error
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, bitmap.Width, bitmap.Height, 0, GL_RGB, GL_UNSIGNED_BYTE, bitmap.GetHbitmap());
C# .NET Core ImageConverter
Преобразуйте растровое изображение в байтовый массив
glTexImage2D + byte[]
Я также попробовал загрузить изображение следующим образом (непосредственно в память, поскольку функция, похоже, требует этого, поскольку упоминалось «Указывает указатель на данные изображения в памяти»), но это приводит к той же ошибке:
Код: Выделить всё
byte[] openFile = File.ReadAllBytes("../../../images/container.jpg");
fixed (byte* p = openFile)
{
IntPtr img = (IntPtr)p;
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 512, 512, 0, GL_RGB, GL_UNSIGNED_BYTE, img);
}
Текстура представляет собой файл JPG размером 512x512, который можно найти здесь: https://learnopengl.com /img/textures/container.jpg
Я использую оболочку, если я правильно понимаю, glfw-net: https://github.com/ForeverZer0/glfw-net
Подробнее здесь: https://stackoverflow.com/questions/789 ... in-c-sharp