Перейти к содержимому


Фото

Скоро можно будет отказаться от Borland С++ 3.1


  • Чтобы отвечать, сперва войдите на форум
45 ответов в теме

#41 гык-sse2 Опубликовано 26 Сентябрь 2010 - 17:24

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев
glRasterPos2f(0, vsize-13);
glCopyPixels(0, 0, hsize, vsize, GL_COLOR);
glFlush();
Данный код вместо работы занимается ерундой, а именно портит изображение :(
Медведь громит каны!

#42 гык-sse2 Опубликовано 27 Сентябрь 2010 - 17:43

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев
Решил проблему. Оказалось, что достаточно было написать
glPixelZoom(0.25, 1);
Вопрос: откуда число 0.25?
Вопрос №2: почему копируется в режиме 256 оттенков серого, хотя куб красный?

Проблема не решена - так я копировал только четверть экрана.
glPixelZoom(0.25, 1);
glRasterPos2f(0, vsize-13);
glCopyPixels(0, 0, hsize*4, vsize, GL_COLOR);
glFlush();
Так копируется все, но очень медленно (<1fps) и без цвета.

Хотя при 1024*600 относительно приемлемо. Все-таки не должно быть циклического вывода в графических программах.

Вопрос о цвете остается актуальным.

По поводу производительности - попробую вернуть двойную буферизацию, т.к. сопирование с одного буфера на другой быстрее, чем в пределах одного. Если все равно будет медленно, значит, нужно изучать работу с текстурами.

Изменено: гык-sse2, 28 Сентябрь 2010 - 14:55

Медведь громит каны!

#43 гык-sse2 Опубликовано 28 Сентябрь 2010 - 17:54

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев
Нет, при больших размерах это был не тормоз, а невыделение памяти. Поделил экран пополам - все стало нормально.
Медведь громит каны!

#44 гык-sse2 Опубликовано 29 Сентябрь 2010 - 16:10

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев
Понял, что было с цветом и размером. glCopyPixels принял это за однобайтовый массив. glReadBuffer и glDrawBuffer исправили и производительность, и цвет!)
Медведь громит каны!

#45 гык-sse2 Опубликовано 06 Октябрь 2010 - 17:58

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев
6.10.2010
Обновления. Добавлен цвет текста и текстового фона, исправлена прокрутка экрана при выводе текста, добавлен потокоподобный класс IOXtream с объектами Paztalom::cin и Paztalom::cout, поддержка rgb-цветов и стандартных констант, доделаны все стандартные цвета. Потеряна возможность проводить арифметические операции над цветами, т.к. теперь цвет - это тройная константа, изменена документация, приложен образец.
#define BLACK 0,0,0

UPD 7.10.2010: добавлен инсталлятор для 64-битных версий Windows (спасибо Насте Песковой за предоставленную информацию о пути установки Visual Studio и системных библиотек на 64-битных системах)

Прикрепленные файлы:


Изменено: гык-sse2, 07 Октябрь 2010 - 17:06

Медведь громит каны!

#46 гык-sse2 Опубликовано 04 Ноябрь 2010 - 9:45

гык-sse2
  • Свои
  • 377 Сообщений:
  • Михаил Беляев
Обновление 4.11.2010 (ко Дню народного единства):
  • обработка кнопки Backspace (упс, только под Mac OS X - как оказалось, скан-коды не совпадают) в cin и ptgets
  • disablerefresh() и enablerefresh() //не знаю, как объяснить для чего, поэтому привожу пример:
В анкете после любой операции (у некоторых неоптимальных программистов даже после движения курсора) перерисовывается вся таблица. При этом, если после каждой операции выполняется glFlush(), то на экран выводятся каждый этап рисования, что значительно снижает скорость.
Статистика:
  • Borland C++ 3.1 (640*480, under DOSBOX) - 00:09.88
  • Consolation (640*480, automatic refresh) - 00:26.08
  • Consolation (640*480, controlled refresh) - 00:01.77
  • Consolation (1600*900, automatic refresh) - 02:08.37
  • Consolation (1600*900, controlled refresh) - 00:03.47

Прикрепленные файлы:

  • Прикрепленный файл  update.zip   6,74 Кб   216 раз скачано

Изменено: гык-sse2, 04 Ноябрь 2010 - 9:46

Медведь громит каны!




1 пользователей читают эту тему

0 пользователей, 1 гостей, 0 невидимых