|
Програмирование графики, вопрос |
|
|
|
 |
Ответов
|
Sep 2 2016, 23:34
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
у openGL есть glDrawPixels. инициализация через GLFW а вот winAPI функции лучше запихать в... <Гусары, МОЛЧАТЬ!> можно заодно с builder 6.0 Код #include "GLFW/glfw3.h" #include <stdio.h> #include <windows.h>
unsigned char pic[1000*800*3];
int main(void){ int t0 = GetTickCount(); GLFWwindow* window;
/* Initialize the library */ if (!glfwInit()) return -1;
/* Create a windowed mode window and its OpenGL context */ window = glfwCreateWindow(1000, 800, "Hello World", NULL, NULL); if (!window) { glfwTerminate(); return -1; }
/* Make the window's context current */ glfwMakeContextCurrent(window); /* Loop until the user closes the window */ while (!glfwWindowShouldClose(window)){ /* Render here */ glClear(GL_COLOR_BUFFER_BIT); for (int i = 0; i < 1000*800*3; i++) pic[i] = rand(); glDrawPixels(1000,800, GL_RGB, GL_UNSIGNED_BYTE, pic); /* Swap front and back buffers */ glfwSwapBuffers(window); /* Poll for and process events */ glfwPollEvents(); printf("%d\n", GetTickCount()-t0); t0 = GetTickCount(); } glfwTerminate(); return 0; }
|
|
|
|
|
Sep 3 2016, 03:01
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(_pv @ Sep 3 2016, 05:34)  у openGL есть glDrawPixels. а вот winAPI функции лучше запихать в... <Гусары, МОЛЧАТЬ!> И Ваш код будет таким-же тормознутым как и предыдущих дельфи-"специалистов". Главная ошибка: перерисовывать попиксельно каждый раз весь экран. Рисовать по пикселам нужно минимум - только обновлённую часть. Старую часть изображения просто копировать ...Blt-функциями. Сомневаюсь, что у OpenGL будет выигрыш по сравнению с WinAPI-шными BitBlt/PatBlt/.... В своё время много времени потратил на оптимизацию подобной задачи: переделывал изначальный свой WinAPI-вариант (через BitBlt/PatBlt/...) на DirectDraw. Получил абсолютно то же самое время работы. Сделал вывод, что при возможности, WinAPI-шные BitBlt/PatBlt/... вызывают изнутри DirectX, поэтому и не видно разницы во времени работы. Думаю что с OpenGL будет то же самое. Конечно в том, что ставить точки лучше не по одной, а пачкой - Вы правы. В WinAPI по-моему тоже есть подобная функция. Цитата(whale_nik @ Sep 3 2016, 06:36)  Если бы как то не заносить значения по новой а двигать область памяти этой матрицы, прибавляя справа по одному столбцу, там же все на указателях, нельзя так сделать ? Память как то закольцевать ) Я Вам это советовал ещё несколько сообщений назад. Но видно "чукча - не читатель..."
|
|
|
|
Сообщений в этой теме
whale_nik Програмирование графики Sep 1 2016, 14:49 _pv быстрые методы это аппаратно через opengl.
хотя да... Sep 1 2016, 16:02 whale_nik Не совсем понял а как это все вывести на форму ?
Я... Sep 1 2016, 16:13 whale_nik Типа такого надо )
Вся картинка должна ехать влево... Sep 1 2016, 18:00  jcxz Цитата(whale_nik @ Sep 2 2016, 00:00) Тип... Sep 2 2016, 04:35 AHTOXA Цитата(whale_nik @ Sep 1 2016, 19:49) Есл... Sep 2 2016, 06:38 whale_nik Сделал как советуете, все равно жесть как медленно... Sep 2 2016, 21:26  AHTOXA Цитата(whale_nik @ Sep 3 2016, 02:26) Сде... Sep 3 2016, 06:09 sigmaN ЦитатаОткрываете MSDN на разделе Windows GDI... Sep 2 2016, 22:16  _pv Цитата(jcxz @ Sep 3 2016, 09:01) И Ваш ко... Sep 3 2016, 08:48   Onkel Цитата(_pv @ Sep 3 2016, 11:48) а совсем ... Sep 3 2016, 09:47 whale_nik Мне кажется основные тормоза и загрузка это инициа... Sep 3 2016, 00:36 k155la3 Курить в сторону направления, заданного jcxz
Пер... Sep 3 2016, 08:42 whale_nik Я правильно понял, что
если создать две одинаков... Sep 3 2016, 09:38 AHTOXA Цитата(whale_nik @ Sep 3 2016, 14:38) со ... Sep 3 2016, 10:10  whale_nik Цитата(AHTOXA @ Sep 3 2016, 14:10) Вы же ... Sep 3 2016, 11:51   k155la3 Цитата(whale_nik @ Sep 3 2016, 14:51) . .... Sep 3 2016, 12:35    whale_nik Без окон никак, увы.
Вот вроде бы нагрузка неболь... Sep 3 2016, 12:38   AHTOXA Цитата(whale_nik @ Sep 3 2016, 16:51) Чет... Sep 3 2016, 13:16    whale_nik Цитата(AHTOXA @ Sep 3 2016, 17:16) 4,5 мс... Sep 3 2016, 17:42    whale_nik Цитата(AHTOXA @ Sep 3 2016, 17:16)
Вот ... Sep 3 2016, 17:58 _pv Цитата(whale_nik @ Sep 3 2016, 16:38) Я п... Sep 3 2016, 10:17 DASM а почему побайтно работаете и не пословно? Sep 3 2016, 12:43 whale_nik Цитата(DASM @ Sep 3 2016, 16:43) а почему... Sep 3 2016, 12:44 amaora В лоб будет больше 60 к/с, если оптимизировать как... Sep 3 2016, 13:26 sigmaN Ребят, я не понимаю зачем нам тут gl и уж тем боле... Sep 3 2016, 17:46 sigmaN Логичнее было бы в архив прилепить исходник, вмест... Sep 3 2016, 18:31 whale_nik Цитата(sigmaN @ Sep 3 2016, 22:31) Логичн... Sep 3 2016, 19:09 sigmaN Проц не грузит(не более 1 - 2% показывает диспетче... Sep 3 2016, 19:23 whale_nik Да, наверняка дергается из за того что таймер нест... Sep 3 2016, 20:29 sigmaN а, ну если чисто для пробы то
в цикле while(!A... Sep 3 2016, 21:59 whale_nik Цитата(sigmaN @ Sep 4 2016, 01:59) а, ну ... Sep 4 2016, 19:12 DASM Таймер тут не причем, просто поток, ушедший в Slee... Sep 3 2016, 22:42 sigmaN Ну Sleep() это я предложил просто. Хотя вы правы, ... Sep 3 2016, 23:24 DASM Таймера в винде для такого иные, см. BOOL QueryPer... Sep 3 2016, 23:43 jcxz Цитата(DASM @ Sep 4 2016, 05:43) Таймера ... Sep 4 2016, 04:08 alexunder Автор, а чего в сторону Direct2D не посмотрите? Дв... Sep 4 2016, 09:43 jcxz Цитата(alexunder @ Sep 4 2016, 15:43) Авт... Sep 4 2016, 13:51 sigmaN Провел тут пару экспериментов со слипом...
за осно... Sep 4 2016, 10:23 sigmaN Ну а мне было больше даже интересно Sleep() по тес... Sep 4 2016, 18:14 jcxz Цитата(sigmaN @ Sep 5 2016, 00:14) Кто зн... Sep 5 2016, 03:04 sigmaN Странно.. при условии, что в цикле есть вызов Appl... Sep 4 2016, 19:15 whale_nik Удалил файл проекта так как вы уже свой написали... Sep 4 2016, 19:32 sigmaN Ну проц и должен грузиться сильно. В цикле же нет ... Sep 4 2016, 20:42 whale_nik Никаких изменений, просто таймер отключил и все в ... Sep 4 2016, 21:37 sigmaN Что-то мне подсказывает, что кадровая развертка ту... Sep 5 2016, 08:14 whale_nik Похоже если надо плавнее и быстрее уже придется в ... Sep 5 2016, 10:14 sigmaN Глянул пару исходничков тут.. В том числе Quake 3 ... Sep 5 2016, 10:46 DASM А чем вас DirectX кстати не устраивает? Ничего пла... Sep 5 2016, 10:49 sigmaN Ну не знаю, тут вопрос как-бы про принципиальную в... Sep 5 2016, 10:56 whale_nik Жалко что вы не в билдере пишете )
В принципе мне... Sep 5 2016, 13:24 sigmaN Адаптировать всё это для билдера пара пустяков.
К... Sep 5 2016, 17:42 jcxz Цитата(sigmaN @ Sep 5 2016, 23:42) Главны... Sep 6 2016, 05:18 sigmaN Ну или ладно, можно не изменяющуюся не копировать(... Sep 6 2016, 08:40 jcxz Цитата(sigmaN @ Sep 6 2016, 14:40) но выв... Sep 6 2016, 08:54 sigmaN ЦитатаЗачем?
Уж не знаю, эксперимент показал, что ... Sep 6 2016, 09:12 whale_nik Подскажите еще допустим есть переменная 0-256, как... Sep 8 2016, 22:39 alexr22b Цитата(whale_nik @ Sep 9 2016, 02:39) Под... Sep 9 2016, 03:17  whale_nik Цитата(alexr22b @ Sep 9 2016, 07:17)
Сп... Sep 9 2016, 09:06 whale_nik Работает, красота ))) Sep 14 2016, 22:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|