Критика KolibriOS
-
Вот только wndId у нас нет. Приложению надо учитывать разные стили окон и обрабатывать изменение размера окна или переход в полноэкранный режим. В результате простой с виду kosglCreateContext начнёт обрастать сложным кодом.
Serge,
согласен, wndId плохой пример, я забыл что его нет. Но он и не нужен, нужен уникальный id приложения, например, processid, чтобы контекстный менеджер понимал что кому принадлежит. Изменения размеров и переход в полноэкранный режим -- это чисто платформенные трюки, тут разработчики ос сами решают как сообщать от этом пользователю.
вообще сделать бы все это как в glfw (https://en.wikipedia.org/wiki/GLFW)
glfwWindowHint(GLFW_SAMPLES, ;
glWnd = glfwCreateWindow(width, height, "", NULL, NULL);
glfwMakeContextCurrent(glWnd);
glfwSetKeyCallback(glWnd, _KeyPressedFn);
glfwSetWindowCloseCallback(glWnd, _stopFn);
glfwSetWindowSizeCallback(glWnd, _resizeFn);
glfwSetCursorPosCallback(glWnd, _mouseMoveFn);
все под капотом, юзеру доступны только каллбэки
согласен, wndId плохой пример, я забыл что его нет. Но он и не нужен, нужен уникальный id приложения, например, processid, чтобы контекстный менеджер понимал что кому принадлежит. Изменения размеров и переход в полноэкранный режим -- это чисто платформенные трюки, тут разработчики ос сами решают как сообщать от этом пользователю.
вообще сделать бы все это как в glfw (https://en.wikipedia.org/wiki/GLFW)
glfwWindowHint(GLFW_SAMPLES, ;
glWnd = glfwCreateWindow(width, height, "", NULL, NULL);
glfwMakeContextCurrent(glWnd);
glfwSetKeyCallback(glWnd, _KeyPressedFn);
glfwSetWindowCloseCallback(glWnd, _stopFn);
glfwSetWindowSizeCallback(glWnd, _resizeFn);
glfwSetCursorPosCallback(glWnd, _mouseMoveFn);
все под капотом, юзеру доступны только каллбэки
Выглядит интересно. Что-то похожее можно замутить, если будет время.
Нет текстовой консоли, что затрудняет разработку простых неграфических программ и перенос существующих (утилит, компиляторов и пр.). И нужно не просто нечто для ввода-вывода текста в окне, а чтобы в том же окне можно было запустить дочерний неграфический процесс и дождаться его завершения. И нужно отличать графический от неграфического (флаг в заголовке программы?), чтобы ждать завершения только для неграфических. Этого не хватает для портирования моего компилятора Smaller C в систему (уверен, что и у других компиляторов та же беда - всё слишком нестандартно). Ну и консоль должна сама открываться новая если производится запуск неграфической программы из графической.
Есть стандартная библиотека /sys/lib/console.obj
Поддерживается в т.ч работа с цветом
Использование смотри тут, в заголовке есть описание
http://websvn.kolibrios.org/filedetails ... onsoleio.c
http://websvn.kolibrios.org/filedetails ... %2Fconio.h
http://websvn.kolibrios.org/filedetails ... %2Fconio.c
Поддерживается в т.ч работа с цветом
Использование смотри тут, в заголовке есть описание
http://websvn.kolibrios.org/filedetails ... onsoleio.c
http://websvn.kolibrios.org/filedetails ... %2Fconio.h
http://websvn.kolibrios.org/filedetails ... %2Fconio.c
Поддерживает запуск дочерних процессов в том же окне?Siemargl wrote: Есть стандартная библиотека /sys/lib/console.obj
Who is online
Users browsing this forum: No registered users and 4 guests