Jump to content

  • Log in with Facebook      Sign In   
  • Create Account

Photo

Проблема с С++


  • Please log in to reply
31 replies to this topic

#21 гык-sse2 Posted 31 August 2010 - 11:57 AM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев
А какие-то стандартные средства бывают? Ну, встроенные, которые, как glut, уже присутствуют в системе? А то обычно кроссплатформенность создает тормоза ЗЫ: раньше думал, что SDL не связан с OpenGL, не использует аппаратное ускорение и используется только в линуеск и программах, с него портированных...
Медведь громит каны!

#22 KiberGus Posted 31 August 2010 - 14:40 PM

KiberGus
  • Genius loci
  • 6561 posts
  • Алексей Гусейнов

А какие-то стандартные средства бывают? Ну, встроенные, которые, как glut, уже присутствуют в системе?
А то обычно кроссплатформенность создает тормоза



ЗЫ: раньше думал, что SDL не связан с OpenGL, не использует аппаратное ускорение и используется только в линуеск и программах, с него портированных...

glut отнюдь не стандартный и не присутсвует в системе по-умолчанию. Разработан для изучения OpenGL, для серьезного применения он не был предназначен.
Тормоза, приносимые кроссплатформанными средствами весьма малы, более того, если писать грамотно, то замедления можно избежать вовсе. Для этого есть условная компиляция. Да и современные компьютеры позволяют.

SDL поддерживает как собственный 2D рендерер, так и инициализацию OpenGL и OpenGL ES контекстов. Несколько строк и получаешь контекст и работаешь с ним напрямую, промежуточных уровней (и тормозов) нет. Работает SDL под подавляющим большингством операционок.
Зато, обладая единственной в мире подводной орбитальной группировкой спутников глонасс...
gentoo.gif

#23 гык-sse2 Posted 31 August 2010 - 16:55 PM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев

glut отнюдь не стандартный и не присутсвует в системе по-умолчанию.

Смотря о какой системе говорить. Я говорю о Mac OS X, в ней глут есть.
Попробую перенести на SDL.
Медведь громит каны!

#24 гык-sse2 Posted 01 September 2010 - 16:40 PM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев

Смотря о какой системе говорить. Я говорю о Mac OS X, в ней глут есть.
Попробую перенести на SDL.

Гибрид SDL/GLUT прокатил. Текст выводит, например, глут, а цикл сам пишу.
Медведь громит каны!

#25 гык-sse2 Posted 03 September 2010 - 17:58 PM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев
Проблема. unicode/ascii всегда равен 0.
char getch () {
	SDL_Event event;
	SDL_WaitEvent(&event);
	while (event.type!=SDL_KEYDOWN)
		SDL_WaitEvent(&event);	
	cout<<uint32_t(event.key.keysym.scancode)<<" "<<uint32_t(event.key.keysym.unicode)<<" "<<endl;
	return event.key.keysym.unicode;//&0x7f;
}
Не важно, включен ли Unicode. Все равно 0. Вообще-то было изначально do SDL_WaitEvent(&event); while (event.type!=SDL_KEYDOWN);
SCAN-код определяется верно.
Медведь громит каны!

#26 гык-sse2 Posted 04 September 2010 - 12:59 PM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев
Проблема решена и заключалась в том, что SDL_EnableUNICODE(SDL_Enable); стояло перед SDL_Init
Медведь громит каны!

#27 Sergey.Ryzhiy Posted 04 September 2010 - 19:55 PM

Sergey.Ryzhiy
  • Свои
  • 1 posts
  • Сергей Рыжий

Если кому то интересно то проблема все же решилась. Причем и на XP и на Vista. Правда это все равно только для DosBox, но работает.
Вместо initgraph(&gd,&gm,"BGI") надо писать initgraph(&gd,&gm,"..//BGI")
Зачем я не знаю. Так написано в папке examples :) Работает.


Всё очень просто: этот третий параметр - папка, в которой находится драйвер (и шрифты до кучи). Можно ничего не указывать, если все нужные файлы лежат в той же папке, что и ваша прога. На сколько я помню, файлик называется egavga.bgi. Конструкция getenv("BGI") означает лишь, что путь нужно взять из переменной окружения с именем BGI (видимо при установке BC он прописывал её в autoexec.bat, но про это я не знаю, не устанавливал ни разу, всегда просто копировал). Судя по тому, что написав "..//BGI" у вас всё заработало - вы запускаете программу в папке типа bc\myprogs\. И кстати, в данном случае было бы правильно писать через обратные слэши: "..\\BGI". А двойной он потому, что обратный слэш - спецсимвол, и для того, чтобы в строчке его написать, нужно поставить его дважды.

#28 гык-sse2 Posted 05 September 2010 - 4:38 AM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев

Судя по тому, что написав "..//BGI" у вас всё заработало

"Все" (т.е. программа) написало "..//BGI" или все-таки программист? Деепричастный оборот не к тому относится. Популярная ошибка, о которой вчера говорила Елена Юрьевна.

Про символ / - он пришел из юникса, но он тоже работает, проверено при портировании с XCode на BC или VS.
Медведь громит каны!

#29 GrGr Posted 06 September 2010 - 14:16 PM

GrGr
  • Свои
  • 2293 posts
  • Григорий Григорьев
Мы в свое время эту проблему решали так - копировали файл egavga.bgi в каталог, куда линковался исполняемый файл ;)
А потом пришел злобный Гр и все опошлил...

#30 Р.А. Posted 20 October 2010 - 7:11 AM

Р.А.
  • Свои
  • 173 posts
  • Артемий Волков
имо проще абсолютный путь к egavga.bgi писать %)
Вспоминаю споры, возбужденные статьей, которая как раз тогда появилась
в одном вызывающем журнальчике. Там подсчитывалось, сколько раз за неделю
американские мужчины в постели делом занимаются, - по разным
профессиональным категориям подсчеты велись. И оказалось, что тут никому не
угнаться за пожарными, те по десять раз еженедельно. А хуже всех
университетские преподаватели, эти хорошо если раз в месяц раскачаются.
Посмотрел статейку один мой однокурсник - его, беднягу, потом на второй
мировой войне ухлопали, - покачал грустно головой и говорит: "Черт, да я бы
все отдал, чтоб поскорей преподавателем стать".
©

#31 гык-sse2 Posted 20 October 2010 - 9:35 AM

гык-sse2
  • Свои
  • 377 posts
  • Михаил Беляев

имо проще абсолютный путь к egavga.bgi писать %)

Абсолютный? А если программу скопировали на другой диск? А если на машине нет борланда?
Медведь громит каны!

#32 Р.А. Posted 20 October 2010 - 10:26 AM

Р.А.
  • Свои
  • 173 posts
  • Артемий Волков

Абсолютный? А если программу скопировали на другой диск? А если на машине нет борланда?


Значит, это правильная машина.
/topic

Edited by Р.А., 20 October 2010 - 10:26 AM.

Вспоминаю споры, возбужденные статьей, которая как раз тогда появилась
в одном вызывающем журнальчике. Там подсчитывалось, сколько раз за неделю
американские мужчины в постели делом занимаются, - по разным
профессиональным категориям подсчеты велись. И оказалось, что тут никому не
угнаться за пожарными, те по десять раз еженедельно. А хуже всех
университетские преподаватели, эти хорошо если раз в месяц раскачаются.
Посмотрел статейку один мой однокурсник - его, беднягу, потом на второй
мировой войне ухлопали, - покачал грустно головой и говорит: "Черт, да я бы
все отдал, чтоб поскорей преподавателем стать".
©




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users