Войти
ПроектыФорумОцените

Фреймворк LDL (7 стр)

Страницы: 16 7 8 9 10 Следующая »
#90
10:29, 20 дек 2022

MrShoor
> Если же у тебя картинка постоянно меняется, ты хочешь перерисовывать всё время,
> то ограничить лучше аппаратно по вертикальной синхронизации. Тебе нужен
> SwapInterval:
Я FpsLimiter'ом задаю кол-во fps. Воспользоваться встроенными функиями оси?

#91
10:32, 20 дек 2022

MrShoor
> А библиотечное конвертирование понятное дело автора не устроило.
Я сделал кастомный класс, потом, что не на всех компиляторах реализована функция itoa.

#92
(Правка: 13:27) 13:24, 20 дек 2022

JordanCpp
Посмотри еще Processing, на нем Igo сделал Nemechanic

Еще, в копилку
Получить Mask из Bitmap:
Вывести Rect цветом MaskColor в промежуточный Bitmap
Вывести поверх свой Bitmap с XOR (где был MaskColor - станет 0)
Копировать результат в Monochrome Bitmap, получится 0-1

Получить Mask из 32bit Bitmap:
Вывести Rect цветом 0xFF000000 в промежуточный Bitmap
Вывести поверх свой Bitmap в режиме AND, останется только альфа

> не на всех компиляторах реализована функция itoa
sscanf позволяет получить число считанных байт (кажется %n), это нужно, если разбираешь длиную строку

#93
14:43, 20 дек 2022

Рендерферма кроликов
> sscanf позволяет получить число считанных байт (кажется %n), это нужно, если
> разбираешь длиную строку
Он вроде malloc  дёргает?

В своём классе я сделал статический буффер.

#94
15:21, 20 дек 2022

Рендерферма кроликов
> Еще, в копилку
> Получить Mask из Bitmap:
> Вывести Rect цветом MaskColor в промежуточный Bitmap
> Вывести поверх свой Bitmap с XOR (где был MaskColor - станет 0)
> Копировать результат в Monochrome Bitmap, получится 0-1
>
> Получить Mask из 32bit Bitmap:
> Вывести Rect цветом 0xFF000000 в промежуточный Bitmap
> Вывести поверх свой Bitmap в режиме AND, останется только альфа
Принято в бэк лог.

#95
15:29, 20 дек 2022

JordanCpp
> Он вроде malloc дёргает?
Он ничего не выделяет, пишет по указателям, которые ты передал

#96
14:36, 21 дек 2022
Изображение
#97
14:41, 21 дек 2022

за одного битого двух небитых дают
в смысле что нынешние советчики тоже огребали в своё время, но возможно и нет, а просто троллят, тут сложно отличить

#98
15:54, 21 дек 2022

#!
> за одного битого двух небитых дают
> в смысле что нынешние советчики тоже огребали в своё время, но возможно и нет,
> а просто троллят, тут сложно отличить
Я всё понимаю. Это больше шутка. Форумчане дают классный фидбэк. Когда пилишь в одного, многое упускаешь.

#99
20:43, 21 дек 2022

Чтобы что-то пилить надо именно это и пилить.
А библиотека получается когда ты выделяешь из работающего проекта проектно - независимый код и оформляешь его в виде библиотеки.

#100
(Правка: 8:07) 8:05, 22 дек 2022

JordanCpp
А примитивы из WinAPI? Линии, Эллипсы, многоугольники? Правда на OpenGL это сложно

Как минимум - достаточно дать юзеру контекст OpenGL или экранный битмап для софтрендера на выбор. И другие битмапы, куда можно грузить картинки или использовать, как промежуточные буффера. Опять диллема - рисовать в битмапы GL-ом или софтрендером

#101
9:08, 22 дек 2022

Рендерферма кроликов
> Как минимум - достаточно дать юзеру контекст OpenGL или экранный битмап для
> софтрендера на выбор. И другие битмапы, куда можно грузить картинки или
> использовать, как промежуточные буффера. Опять диллема - рисовать в битмапы
> GL-ом или софтрендером
Для софт рендера все рисование идет в буфер.

Есть 2 типа картинок.
СpuImage - массив пикселей с размером
GpuImage - OpenGL текстура

Рендер разделен на две версии софтрендер CpuRender и OpenGL GpuRender.

Из CpuImage можно создать GpuImage, или использовать ImageLoader напрямую.
Добавлю функционал, что бы можно было рисовать напрямую на CpuImage.

Рендерферма кроликов
> А примитивы из WinAPI? Линии, Эллипсы, многоугольники? Правда на OpenGL это
> сложно
Реализовал только рисование, линий, точек, прямоугольников, для софтрендера добавлю еще окружность.

#102
9:10, 22 дек 2022

vka123
> Чтобы что-то пилить надо именно это и пилить.
> А библиотека получается когда ты выделяешь из работающего проекта проектно -
> независимый код и оформляешь его в виде библиотеки.
Могу пилить двиг Arcanum'а как пример и универсальный функционал отделять во фреймворк. Как раз протестирую на реальном проекте. Сейчас есть только примеры к фреймворку.

#103
10:04, 22 дек 2022

JordanCpp
> Для софт рендера все рисование идет в буфер
Это понятно, но логично дать возможность выводить софтовый буффер в рендертаргет или текстуру, такое совмещение софтрендера с GL. Кстати, сам рендербуффер выводишь через GL?

> Реализовал только рисование, линий, точек, прямоугольников, для софтрендера добавлю еще окружность
Бери готовые из WinAPI, там и эллипсы, сектора и всякие режимы наложения, кисти и пены, афин трансформ и даже билинейка. Да даже в Borland BGI под DOS полно функций рисования

У меня валяется Processing на OpenGL (сам не разбирался), на нем сделан улетный набор демок Nemehanika. Посмотри и оцени эту вершину исскуства

#104
10:19, 22 дек 2022

Рендерферма кроликов
> Это понятно, но логично дать возможность выводить софтовый буффер в
> рендертаргет или текстуру, такое совмещение софтрендера с GL.
Да в GpuRender есть методы для вывода CpuImage

      void Draw(CpuImage* image, const Point2u& pos, const Point2u& size);
      void Draw(CpuImage* image, const Point2u& pos);

Рендерферма кроликов
> Кстати, сам рендербуффер выводишь через GL?
Для софтрендера вывожу так

void CpuWindowImpl::Present(uint8_t* pixels)
{
    _BITMAPINFO.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    _BITMAPINFO.bmiHeader.biWidth = (LONG)_Window.Size().PosX();
    _BITMAPINFO.bmiHeader.biHeight = -(LONG)_Window.Size().PosY();
    _BITMAPINFO.bmiHeader.biPlanes = 1;
    _BITMAPINFO.bmiHeader.biBitCount = 32;
    _BITMAPINFO.bmiHeader.biCompression = BI_RGB;

    SetDIBitsToDevice(_Window._HDC, 0, 0, (DWORD)_Window.Size().PosX(), (DWORD)_Window.Size().PosY(), 0, 0, 0, (UINT)_Window.Size().PosY(), pixels, &_BITMAPINFO, DIB_RGB_COLORS);
}

Рендерферма кроликов
> Бери готовые из WinAPI, там и эллипсы, сектора и всякие режимы наложения, кисти
> и пены, афин трансформ и даже билинейка. Да даже в Borland BGI под DOS полно
> функций рисования
Точно нет. Мне нужен переносимы рендер. Лучше кодом перенесу из других реализаций.

Рендерферма кроликов
> У меня валяется Processing на OpenGL (сам не разбирался), на нем сделан улетный
> набор демок Nemehanika. Посмотри и оцени эту вершину исскуства
Поделись плиз.

Страницы: 16 7 8 9 10 Следующая »
ПроектыФорумОцените