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

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

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2013, 10:32   #11
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
Только не критикуйте код
зачем тогда тему вообще создали?
если работает только в debug, то экзешник точно выкладывать не нужно.

Цитата:
Знаю что VC страдает проблемой таскания 2 dll за собой
это не проблема, это бонус.
f.hump вне форума Ответить с цитированием
Старый 16.05.2013, 12:29   #12
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
это не проблема, это бонус.
Че за 20 лет виртуальную машину внутрь exe толкать не придумали?
Человек_Борща вне форума Ответить с цитированием
Старый 17.05.2013, 01:54   #13
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
зачем тогда тему вообще создали?.
Вы точно прочитали мою тему полностью?

Пока не выкладываю файл - латаю дыры и оптимизирую, ищу косяки в релизе (т.е. в коде). Как будет оформлено я сообщу, уж хочется послушать мнения ваши.
Elloriane вне форума Ответить с цитированием
Старый 17.05.2013, 07:43   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
уж хочется послушать мнения ваши.
Тогда хотя бы сделай так чтоб файл запускался.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.05.2013, 08:55   #15
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Еще один Вундеркинд улыбнуло.
XerSon вне форума Ответить с цитированием
Старый 17.05.2013, 20:28   #16
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Да, без проблем, сегодня/завтра выложу рабочую версию
Elloriane вне форума Ответить с цитированием
Старый 17.05.2013, 23:24   #17
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Обновлено:
В архиве лежат .exe и .vcproj

http://rghost.ru/46074869

Чтобы выделить суть из темы: что необходимо доработать? чего не хватает и что скорее всего лишнее?

Последний раз редактировалось Elloriane; 17.05.2013 в 23:27.
Elloriane вне форума Ответить с цитированием
Старый 18.05.2013, 08:04   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

1) 90% загрузка ЦПУ.
2) Запрет закрытия окна.
3) Тормоза, не характерные для приложения с OGL.
4) При заливке две вертикальные синие линии, которые глаз режут.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2013, 15:07   #19
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
1) 90% загрузка ЦПУ.
2) Запрет закрытия окна.
3) Тормоза, не характерные для приложения с OGL.
4) При заливке две вертикальные синие линии, которые глаз режут.
1) Что может оказывать самое большое влияние на загрузку ЦПУ ?
2) Клавиша "Esc" работает во всех разделах, или я ошибаюсь?
3) Можете по-конкретнее описать?
4) Уберу

По поводу 3 пункта:
Я, посчитав выражение, строю определенный диапазон точек и перестраиваю в случае движения объектов, может быть именно по этой причине и подтормаживает? Быть может это не рационально?

Немного посидел над программой в поисках утечек памяти(оказывается они у меня были), которые были колоссальными (из-за циклов)
Теперь CrtDumpMemoryLeaks не ругается, но вот в чем вопрос:
Открыл диспетчер задач и смотрю мой процесс (WIN32API.exe)
А в окошке нажимаю F3 - выдвижение / убирание меню , а отсек память почему-то растет и растет (при каждом нажатии)
Почему?
Обработчик клавиши
:
Код:
else if (((keys[VK_F3]) && (menu2 == FALSE)) || (firstTimeFlag == TRUE))
				{
					firstTimeFlag = FALSE;
					double i;
					if (menu1 == TRUE)
					{
						ShowWindow(button_full_info,SW_HIDE);
						menu1 = FALSE;
						CORE.SetOpt(MENU_1, FALSE);
						for (i = 0; i < 0.65; i += (float)MenuWSpeed * 3.5)
						{
							DrawWordsMenu1((float)i);
							SwapBuffers(hDC);
						}
						glDisable(GL_BLEND);		// Turn Blending Off
						glEnable(GL_DEPTH_TEST);	// Turn Depth Testing On
					}
					else
					{
						glEnable(GL_BLEND);			// Turn Blending On
						glDisable(GL_DEPTH_TEST);	// Turn Depth Testing Off
						for (i = 5; i > -10; i -= (float)MenuSSpeed * 1.5)
						{
							DrawGLScene(0, (float)i, FALSE);
							SwapBuffers(hDC);
						}
						menu1 = TRUE;
						ShowWindow(button_full_info,SW_NORMAL);
						CORE.SetOpt(MENU_1, FALSE);
						SwapBuffers(hDC);
					}
					keys[VK_F3]=FALSE;
				}
Функция для прорисовки
Код:
int DrawGLScene(int side, float menu1, float menu2)									// Here's Where We Do All The Drawing
{

	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear Screen And Depth Buffer
	glClearColor(1.0f,1.0f,1.0f,0.0);
	glLoadIdentity();									// Reset The Current Modelview Matrix
	glTranslatef(0.0, 0.0,-8.0f);
	if (menu1 != 0.0)
	{
		glBegin(GL_QUADS);
			glColor3f(0.1f,0.1f,1.0f);
			glVertex3f(5.0f, 4.0f, 0.0f);
			glColor3f(1.0f,1.0f,1.0f);
			glVertex3f(menu1, 4.0f, 0.0f);
			glVertex3f(menu1,-4.0f, 0.0f);
			glColor3f(0.1f,0.1f,1.0f);
			glVertex3f(5.0f,-4.0f, 0.0f);
		glEnd();
	}
	else if (menu2 != 0.0)
	{
		glBegin(GL_QUADS);
			glColor3f(1.0f,0.1f,0.1f);
			glVertex3f(-5.0f, 4.0f, 0.0f);
			glColor3f(1.0f,1.0f,1.0f);
			glVertex3f(menu2, 4.0f, 0.0f);
			glVertex3f(menu2,-4.0f, 0.0f);
			glColor3f(1.0f,0.1f,0.1f);
			glVertex3f(-5.0f,-4.0f, 0.0f);
		glEnd();
	}
	
	glTranslatef((GLfloat)CORE.ShiftOpen(X), (GLfloat)CORE.ShiftOpen(Y),-8.0f);
	glBindTexture(GL_TEXTURE_2D, texture[0]);
	if (side == 1)
		CORE.Rotate(X, INC);
	else if (side == 2)
		CORE.Rotate(X, ADD);
	else if (side == 3)	
		CORE.Rotate(Y, INC);
	else if (side == 4)	
		CORE.Rotate(Y, ADD);
	else if (side == 5)
		CORE.Rotate(Z, INC);
	else if (side == 6)
		CORE.Rotate(Z, ADD);
	else
		CORE.RotateDefault();
	// The axis
	if (CORE.SetOptOpen(AXIS))
	{
		glColor3f((float)axisColor, (float)axisColor, (float)axisColor);
		// OX
		glBegin(GL_LINES);
			glVertex3f((GLfloat)(-X_GL_MAX * multiplier - CORE.ShiftOpen(X)), 0.0f, 0.0f);
			glVertex3f((GLfloat)(X_GL_MAX * multiplier - CORE.ShiftOpen(X)), 0.0f, 0.0f);
		glEnd();
		// OY
		glBegin(GL_LINES);
			glVertex3f(0.0f, (GLfloat)(-Y_GL_MAX * multiplier - CORE.ShiftOpen(Y)), 0.0f);
			glVertex3f(0.0f, (GLfloat)(Y_GL_MAX * multiplier - CORE.ShiftOpen(Y)), 0.0f);
		glEnd();
		glBegin(GL_POINTS);
		// (0, 0)
		glColor3f(1.0f,0.0f,0.0f);
		glBegin(GL_QUADS);
			glVertex3f(0.1f, -0.1f, 0.0f);
			glVertex3f(-0.1f, -0.1f, 0.0f);
			glVertex3f(-0.1f, 0.1f, 0.0f);
			glVertex3f(0.1f, 0.1f, 0.0f);
		glEnd();
	}
	// Далее ненужный текст (рисования графика)
	return TRUE;
}
что может так катастрофично оседать на память?
(прикрепил экзешник)
Вложения
Тип файла: zip Win32API(upgrade).zip (16.4 Кб, 10 просмотров)

Последний раз редактировалось Elloriane; 18.05.2013 в 17:05.
Elloriane вне форума Ответить с цитированием
Старый 18.05.2013, 19:13   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что может оказывать самое большое влияние на загрузку ЦПУ ?
Нужно код анализировать. То что ты выложил не говорит о потенциальной нагрузке ничего. Скорее всего это какой-то цикл, в котором нет спячки.
Цитата:
2) Клавиша "Esc" работает во всех разделах, или я ошибаюсь?
Ну это не все догадаются, учитывая что в винде общепринято ALT+F4.
Цитата:
Можете по-конкретнее описать?
Нет. Не я ведь автор программы? Те программы, с которыми сталкивался я, когда работал с 3D графикой таких тормозов не давали, даже не смотря на тяжеленькие надстройки над OpenGL.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows Vista - Новое творение! SuperVisor Windows 96 25.07.2011 09:42
Моё творение. Сделала свой движок. Оцените. olgatcpip PHP 3 25.05.2011 16:44
Моё железо Стёпан Компьютерное железо 2 01.04.2011 13:04
проверьте моё решение sverhuVniz Паскаль, Turbo Pascal, PascalABC.NET 4 25.10.2008 09:26
Кто слушает электронику - подскажите, чьё творение я скомуниздил? =) JTG Свободное общение 1 07.07.2008 17:27