#!
а вот этот ответ разве не ставит крест на начинании?
На данный момент библиотека успешно компилируется Visual C++ 6.0 из коробки. Скорость компиляции огонь, но и уровень оптимизации хромает. К примеру вывод картинки на CPU различается в три раза на одном железе но с современным компилятором.
Так это только на новом железе и ОС такая разница, а на более древних новый заоптимизированный машинный код если даже и заработает, то уровень ускорения будет плавно стремиться к нулю и даже может уйти в отрицательные значения. Но даже на древнем железе были такие проекты, которые замучаешься повторять, потому машинных ресурсов ему хватит надолго, если расходовать с умом.
Добавил поддержку компилятора Open Watcom v2. Должен работать и с более старыми версиями, но я не проверял. Будет основа для порта Dos.
Создал заглушки для доса в проекте.
Не компилит. Вывод компилятора.
C:\Repos\Lib-LDL\Win9x>call C:\WATCOM\owsetenv.bat
Open Watcom Build Environment
..\dependencies\stb\stb_image.h(7333): Warning! W472: col(33) expression with side effect in sizeof discarded
..\dependencies\stb\stb_image.h(7333): Note! N393: col(33) included from ..\source\Loaders\ImageLoader.cpp(13)
..\dependencies\stb\stb_image.h(7334): Warning! W472: col(33) expression with side effect in sizeof discarded
Error! E2028: __wcpp_4_fs_handler_rtn__ is an undefined reference
Error! E2028: __compiled_under_generic is an undefined reference
file main.obj(C:\Repos\Lib-LDL\Examples\Graphics\Cpu\05_Cpu_Image\main.cpp): undefined symbol __wcpp_4_fs_handler_rtn__
file Eventer.obj(C:\Repos\Lib-LDL\source\Events\Eventer.cpp): undefined symbol __wcpp_4_fs_handler_rtn__
file MainWindow.obj(C:\Repos\Lib-LDL\source\Platforms\Dos\Graphics\MainWindow.cpp): undefined symbol __wcpp_4_fs_handler_rtn__
file TextRasterizer.obj(C:\Repos\Lib-LDL\source\Graphics\TextRasterizer.cpp): undefined symbol __wcpp_4_fs_handler_rtn__
file BaseScreenshoter.obj(C:\Repos\Lib-LDL\source\Graphics\Base\BaseScreenshoter.cpp): undefined symbol __wcpp_4_fs_handler_rtn__
file FontLoader.obj(C:\Repos\Lib-LDL\source\Loaders\FontLoader.cpp): undefined symbol __wcpp_4_fs_handler_rtn__
file ImageLoader.obj(C:\Repos\Lib-LDL\source\Loaders\ImageLoader.cpp): undefined symbol __wcpp_4_fs_handler_rtn__
Error: Linker returned a bad status
Для продолжения нажмите любую клавишу . . .
Так собираю.
call C:\WATCOM\owsetenv.bat
del *.obj *.err *.exe
wcl386.exe ..\Examples\Graphics\Cpu\05_Cpu_Image\main.cpp -i="C:\WATCOM/h;../include;" -e25 -zq -od -d2 -6r -bt=dos -mf -xs -xr -dLDL_SUPPORT_DOS ^
..\source\Allocators\*.cpp ^
..\source\Core\*.cpp ^
..\source\Events\*.cpp ^
..\source\Time\*.cpp ^
..\source\Platforms\Dos\Graphics\*.cpp ^
..\source\Platforms\Dos\Time\*.cpp ^
..\source\Graphics\*.cpp ^
..\source\Graphics\Base\*.cpp ^
..\source\Graphics\Cpu\*.cpp ^
..\source\Graphics\Primitives\*.cpp ^
..\source\Loaders\*.cpp ^
gdi32.lib ^
opengl32.lib ^
winmm.lib
pause
В гугл есть вопросы, но нет ответов.
JordanCpp
> Не компилит. Вывод компилятора.
я так понимаю это вывод линкера, компилятор все скомпилил.
дай ему __wcpp_4_fs_handler_rtn__ которую он хочет
https://openwatcom.users.c-cpp.narkive.com/now3XqVI/codebase-6-5-… enwatcom-1-7a
Переписал зависимые от операционной системы классы с помощью идиомы fast pimpl.
Для первого выпуска осталось.
1. Отрефакторить код.
2. Допилить минимальный функционал 2D графики.
3. Исправить вывод текстур на Windows 95, 98, Me.
4. Добавить больше примеров.
5. Реализовать классы заглушек.
6. Запилить документацию. Уже начал.
Товарищи разработчики. Можете дать фидбек по коду? Может, что то переписать или реорганизовать код?
Я понимаю, что времени на это нет. Хотя бы поверхностно посмотреть, возможно глаз за, что то и зацепится.
JordanCpp
> Можете дать фидбек по коду?
я кода не вижу, я вижу только такие партянки
LDL::Graphics::CpuWindow::CpuWindow(const LDL::Graphics::Point2u& pos, const LDL::Graphics::Point2u& size, const std::string& title, size_t mode) : _CpuWindowImpl(new LDL::Graphics::CpuWindowImpl(pos, size, title, mode)) { }
желание смотреть на такое нету
u960
> я кода не вижу, я вижу только такие партянки
Что именно не так? Форматирование кода? Или много параметров в конструкторе?
u960
обычные кресты, не?
kkolyan
> обычные кресты, не?
Понятно отвечать, не?
JordanCpp
я не отвечал тебе. мой комментарий является продолжением цепочки с последнего комментария u960, о чем говорит указание его ника, выделенного жирным, в начале комментария. это обычный паттерн построения цепочек на таком типе форумов.
kkolyan
Сорян на автомате ответил.
kkolyan
Мне показалось, что b960 отвечает. И не совсем понял, что спрашивает.
Вот я смотрю на этот код и вижу одни обёртки для вызова функций.
возьмём для примера
eventer.hpp https://github.com/JordanCpp/Lib-LDL/blob/master/include/LDL/Events/Eventer.hpp
eventer.cpp https://github.com/JordanCpp/Lib-LDL/blob/master/source/Events/Eventer.cpp
Это просто обёртка для std::queue<LDL::Events::Event>
хотя класс Event это: { public: union { uint8_t Type; LDL::Events::Quit Quit; LDL::Events::Mouse Mouse; LDL::Events::Resize Resize; LDL::Events::Keyboard Keyboard; }; };
Обычную очередь событий раздули на 7 файлов.
Зачем столько пустых классов, геттеров и сеттеров? и каждый чих в новом файле. Это неудобно.
Вы и так используете STB библиотеку - сравните сколько реального кода там и у вас.
Попробуйте написать ТЗ на вашу библиотеку.