Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2010, 09:08   #1
Demi
Пользователь Подтвердите свой е-майл
 
Аватар для Demi
 
Регистрация: 28.03.2007
Сообщений: 52
По умолчанию движёк для 2D

Представляю на суд общественности свой движёк.
Основан на openGL. Для запуска демки нужны установленные кодеки в системе (DivX).

Возможности:
-цвет в формате RGBA
-точки
-линии
-градиентные линии
-треугольники
-градиентные треугольники
-4угольники
-прямоугольнки
-градиентные 4угольники
-еллипс под углом
-текст
-отрисовка изображений TGA BMP JPEG (с альфаканалом и смешиванием цветов)
-отрисовка видео (с альфаканалом и смешиванием цветов)
-аппаратное ускорение
-очень просто.



Обновил архив...
Изображения
Тип файла: jpg qw.jpg (166.3 Кб, 379 просмотров)
Вложения
Тип файла: zip GLEngine2D.zip (4.78 Мб, 40 просмотров)
GLEngine2D - сайт проекта
FreeRating Cайт нашей команды

Последний раз редактировалось Demi; 06.04.2010 в 15:00.
Demi вне форума Ответить с цитированием
Старый 06.04.2010, 17:17   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Access violation=( При нажатии на старт или стоп
А жаль...
Kostia вне форума Ответить с цитированием
Старый 06.04.2010, 17:19   #3
Cristoff666
Новичок
Джуниор
 
Аватар для Cristoff666
 
Регистрация: 02.04.2010
Сообщений: 1
По умолчанию

Интересненько, сейчас поглядим, что там за движок...
Cristoff666 вне форума Ответить с цитированием
Старый 06.04.2010, 17:42   #4
Demi
Пользователь Подтвердите свой е-майл
 
Аватар для Demi
 
Регистрация: 28.03.2007
Сообщений: 52
По умолчанию

Ошибка возникает если у вас неустановлены кодаки
Если лень ставить Замените 300Divx.avi файлом 300.avi он не требует кодеков.
GLEngine2D - сайт проекта
FreeRating Cайт нашей команды
Demi вне форума Ответить с цитированием
Старый 06.04.2010, 18:03   #5
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Теперь еще лучше, division by zero... эх...
Kostia вне форума Ответить с цитированием
Старый 06.04.2010, 21:48   #6
Demi
Пользователь Подтвердите свой е-майл
 
Аватар для Demi
 
Регистрация: 28.03.2007
Сообщений: 52
По умолчанию

Для тех кому лень поставить кодаки...
Вложения
Тип файла: zip Project1.zip (260.0 Кб, 16 просмотров)
GLEngine2D - сайт проекта
FreeRating Cайт нашей команды
Demi вне форума Ответить с цитированием
Старый 06.04.2010, 22:17   #7
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Симптомы такие же как у Кости.
Вот интересно, если я просто проигрывателем (Media Player Classic) могу этот *.avi посмотреть, это означает что у меня кодеки установлены, или нет?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 07.04.2010, 08:09   #8
Demi
Пользователь Подтвердите свой е-майл
 
Аватар для Demi
 
Регистрация: 28.03.2007
Сообщений: 52
По умолчанию

Вот версия без поддержки видео.
попробуйте её.
Вложения
Тип файла: zip GLEngine.zip (378.1 Кб, 21 просмотров)
GLEngine2D - сайт проекта
FreeRating Cайт нашей команды
Demi вне форума Ответить с цитированием
Старый 07.04.2010, 11:13   #9
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Теперь работает.
Замечание:
1. Вместо русского текста кракозябры
2. Нет датчика FPS

1. С текстом я работаю так:
есть структура(нужно было как класс замутить, так было бы проще и удобней=)) M2DFont, и тройка функций для создания уничтожения шрифта и вывода текста с использованием шрифта.
Код:
typedef struct tagM2DFont
{
	unsigned int Base;
	unsigned int Width, Height;
} M2DFont;

void M2DCreateFont(M2DFont *Font, int Height, unsigned int Stile, char *FontName)// Build Our Bitmap Font
{
	HFONT	font;										// Windows Font ID
	HFONT	oldfont;									// Used For Good House Keeping

	Font->Base = glGenLists(256);						// Storage For 256 Characters
	Font->Height = Height;

	font = CreateFont(	-Height,						// Height Of Font
						0,								// Width Of Font
						0,								// Angle Of Escapement
						0,								// Orientation Angle
						0,								// Font Weight
						Stile & 1,						// Italic
						Stile & 2,						// Underline
						Stile & 4,						// Strikeout
						RUSSIAN_CHARSET,				// Character Set Identifier
						OUT_TT_PRECIS,					// Output Precision
						CLIP_DEFAULT_PRECIS,			// Clipping Precision
						DEFAULT_QUALITY,				// Output Quality
						FF_DONTCARE|DEFAULT_PITCH,		// Family And Pitch
						FontName);						// Font Name

	oldfont = (HFONT)SelectObject(hDC, font);           // Selects The Font We Want
	wglUseFontBitmaps(hDC, 0, 256, Font->Base);			// Builds 256 Characters
	SelectObject(hDC, oldfont);							// Selects The Font We Want
	DeleteObject(font);									// Delete The Font
}

void M2DKillFont(M2DFont *Font)							// Delete The Font List
{
	glDeleteLists(Font->Base, 256);						// Delete All 256 Characters
}

void M2DglPrint(float x, float y, M2DFont *Font, const char *fmt, ...)					
{
	glPushMatrix();
	glRasterPos2f(x,y+Font->Height);

	char		text[256];								
	va_list		ap;										

	if (fmt == NULL)									
		return;											

	va_start(ap, fmt);									
	    vsprintf_s(text, fmt, ap);						
	va_end(ap);											

	glPushAttrib(GL_LIST_BIT);							
	glListBase(Font->Base);								
	glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);
	glPopAttrib();					
	glPopMatrix();
}
Первым делом прошу обратить внимание на RUSSIAN_CHARSET.

Про FPS, тут все просто: FPS = (1000.0/DeltaTime); это если DeltaTime измеряется в миллисекундах.

И пора бы на WinAPI окна создавать и отказаться от стандартного таймера, ибо он не точен. Его точность ~16ms, а вот QueryPerformanceCounter() уже во много раз точнее.

Удачи!
Kostia вне форума Ответить с цитированием
Старый 07.04.2010, 11:15   #10
Demi
Пользователь Подтвердите свой е-майл
 
Аватар для Demi
 
Регистрация: 28.03.2007
Сообщений: 52
По умолчанию

ок. шрифты поправлю..
GLEngine2D - сайт проекта
FreeRating Cайт нашей команды
Demi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить функцию для вычисления значения y=P(x) многочлена для заданного аргумента x KASPEER Помощь студентам 2 12.01.2010 15:03
Насколько можетбыть коротким код для решения задчки для Экселя? saga Microsoft Office Excel 0 04.04.2009 13:35
PopupMenu для формы свое, а для Edit - стандартное Виндоус yaver Общие вопросы Delphi 4 10.11.2008 15:03
Срочно : Требуется поставить запрет для иностранных IP для просмотра сайта. pornodiller Фриланс 2 06.11.2008 22:02
Бесплатный движок для САЙТА на Java Script для Бесплатных Хостингов антигерой HTML и CSS 0 15.04.2007 21:39