Нужно загрузить картинку в SDL_Surface для установки её на иконку окна и на кастомный курсор. Нашел вот этот способ превращения массива пикселей в SDL_Surface: https://wiki.libsdl.org/SDL_SetWindowIcon Но тогда появляется вопрос, а как прочитать картинку в массив пикселей? Попробовал разные сайты, конвертирующие картинку в массив пикселей. Такой код:
uint8_t pixels[] = {
0xff, 0xff, 0xff, 0x00, 0xff, // и т.д, огромное кол-во хексов цифр...
};
SDL_Surface *cursor;
cursor = SDL_CreateRGBSurfaceFrom(pixels, 16, 16, 16, 16*2, 0x0f00, 0x00f0, 0x000f, 0xf000);
SDL_Cursor * c = SDL_CreateColorCursor(cursor, 0,0);
SDL_SetCursor(c);
Так вот, картинка отображается вообще не корректно. Её видно только при разрешении 16x16, но при этом цвета глючат, а при бОльшем разрешении картинки так и вовсе ничего. Функция, помимо пикселей и разрешения, принимает ещё какие-то r, g и b -маски, но для чего они нужны, я так и не понял, а также depth и pitch (которые лучше не менять, как я выяснил). Ещё, в примере на сайте цифры явно не такие. Там хексы каких-то пятизначных цифр.
Так как же правильно загружать картинку? Объясните, пожалуйста, новичку в SDL2 (SDL_LoadBMP не предлагать, нужна альфа).
В общем, проблема решена. Нашел на оф сайте объяснение, как с stbimage прочитать картинку в SDL-овский формат.
Ещё нашел на просторах гитхаба библиотеку как stb_image, только совмещенную с SDL2, но в ней почему-то работают не все форматы изображения.
Первый способ наиболее рабочий.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Сверстан сайт на flexboxПроблема в том, что во всех браузерах меню нормально и адекватно отображается в одну строку, но в IE и Edge текст в меню съезжает...
На сайте мне необходима функция цветовой пипетки, то есть возможность скопировать цвет пикселя, который находится под курсором