Jump to content

  • Log in with Facebook      Sign In   
  • Create Account

Photo

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


  • Please log in to reply
45 replies to this topic

#41 гык-sse2 Posted 26 September 2010 - 17:24 PM

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

#42 гык-sse2 Posted 27 September 2010 - 17:43 PM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев
Решил проблему. Оказалось, что достаточно было написать
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 относительно приемлемо. Все-таки не должно быть циклического вывода в графических программах.

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

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

Edited by гык-sse2, 28 September 2010 - 14:55 PM.

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

#43 гык-sse2 Posted 28 September 2010 - 17:54 PM

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

#44 гык-sse2 Posted 29 September 2010 - 16:10 PM

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

#45 гык-sse2 Posted 06 October 2010 - 17:58 PM

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

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

Attached Files


Edited by гык-sse2, 07 October 2010 - 17:06 PM.

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

#46 гык-sse2 Posted 04 November 2010 - 9:45 AM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев
Обновление 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

Attached Files


Edited by гык-sse2, 04 November 2010 - 9:46 AM.

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




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users