Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [3] 4 5   Вниз
  Печать  
Автор Тема: Давайте изучим DX9 вместе :)  (Прочитано 164039 раз)
0 Пользователей и 15 Гостей смотрят эту тему.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #60 : 15-12-2008 23:03 » 

Антон__, Ну движение и расчет насколько я знаю вешаются на таймер, а не на WM_IDLE. Или выносятся в отдельный thread (нитка) и там уже обсчитывается вся не графическая часть, но синхронизация тиков движения все равно происходит по таймеру. Лучше конечно использовать мультимедиа таймеры. .
« Последнее редактирование: 15-12-2008 23:06 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #61 : 16-12-2008 04:37 » 

Хм, я что то тут даже не нашёл, где добавляется обработчик события - или теперь только вручную ? ))
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #62 : 16-12-2008 04:49 » 

во, нашёл, офигеть как запрятали - в свойствах диалога, messages

теперь пытаюсь найти, где добавляеются виртуальные функции (из родительского класса, например для диалога)
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #63 : 17-12-2008 17:25 » 

Как мне добавить функцию
Код:
void CMainFrame::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
MessageBox(L"OnKey");
}
Запихиваю в класс, но ничего не происходит...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #64 : 17-12-2008 17:55 » 

надо добавить обработчик сообщений WM_KEYUP, а визард сам пропишет функцию
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #65 : 17-12-2008 18:11 » 

фсё, частично разгрёб. Давай проект, на какой он там у тебя стадии


--------------
последние изменения - перекидал файлы, запустилось, но один только тёмно-зелёный экран и циферки, с графикой я не разбирался ещё

Поразбирайся, если чё - завтра продолжим

* DXTEST_0004.rar (51.09 Кб - загружено 1012 раз.)
« Последнее редактирование: 17-12-2008 19:57 от Алексей1153++ » Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #66 : 18-12-2008 12:41 » 

Что такое __asm int 3 ?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #67 : 18-12-2008 17:13 » 

Offtopic:

это зло Отлично
Поставлю в угол.


это вызов прерывания 3 (не знаю, что делает) , а зачем тебе это ?

Ты в проекте делал что нибудь, или в этом продолжать копаться ?
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #68 : 18-12-2008 18:08 » 

Это для ассерта, в универе задали)
Вот хочу узнать про это попдробнее.Улыбаюсь
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #69 : 18-12-2008 21:01 » 

Это не assert. А Дебаг прерывание. Почти все дебагеры раньше использовали это прерывание. Сейчас честно говоря не знаю положение. Это прерывание примечательно тем, что записывается всего в один байт машинного кода. Дебагер его записывал в точке останова. Затем после останова, востанавливал предыдушее значение байта. Сейчас чуть сложнее с этим играться. Так как страници памяти с кодом read only как правило.
« Последнее редактирование: 18-12-2008 21:04 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #70 : 18-12-2008 21:43 » 

Finch, спасибо.Улыбаюсь
Записан
Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #71 : 28-12-2008 16:25 » 

Уже 1500 просмотров.
 Улыбаюсь

Выкладываю последнюю версию.

* project2.rar (9.84 Кб - загружено 993 раз.)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #72 : 28-12-2008 16:31 » 

Антон__, у меня процесс застрял на поверхностях, пока больше не успел. Зафтра последний день, дальше неделя отдыха - там собираюсь оторваться

твой проект открыть не смог - не желает конвертироваться
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #73 : 28-12-2008 16:51 » 

оу, победил поверхности ) Моя структурка, инкапсулирующая поверхность, выглядит так

Код:
struct s_PictSurface
{
private:
IDirect3DSurface9* pDS;

public:

const IDirect3DSurface9* GetDirectSurface()
{
return pDS;
}

s_PictSurface()
{
::memset(this,0,sizeof(*this));
}

bool CreateEmpty(const s_D3DVals* p3DVals,UINT Width,UINT Height,D3DPOOL Pool=D3DPOOL_SYSTEMMEM)
{
if(pDS)return false;
HRESULT hres=0;
hres=p3DVals->pDI->CreateOffscreenPlainSurface(
Width,
Height,
p3DVals->PresentationParameters.BackBufferFormat,
Pool,
&pDS,
0);
if(hres!=D3D_OK || pDS==0)return false;
return true;
}

bool CreateFromResource(HINSTANCE hinst,IDirect3DDevice9* pDI,const char* pchResourceID,D3DPOOL Pool=D3DPOOL_SYSTEMMEM)
{
HRESULT hres=0;
if(pDS)return false;

D3DXIMAGE_INFO SrcInfo;
hres=D3DXGetImageInfoFromResource(hinst,pchResourceID,&SrcInfo);
if(hres!=D3D_OK)return false;

hres=pDI->CreateOffscreenPlainSurface(
SrcInfo.Width,
SrcInfo.Height,
D3DFMT_A8R8G8B8,//SrcInfo.Format,
Pool,
&pDS,
0);
if(hres!=D3D_OK || pDS==0)return false;

hres=D3DXLoadSurfaceFromResource(
pDS,
0,
0,
hinst,
pchResourceID,
0,
D3DX_FILTER_NONE,
0,
0
);

if(hres!=D3D_OK)return false;

return true;
}


//bool Create(IDirect3DDevice9* pDI,UINT Width,UINT Height,D3DFORMAT Format,DWORD Pool)
bool CreateFromFile(IDirect3DDevice9* pDI,const char* pchResource,D3DPOOL Pool=D3DPOOL_SYSTEMMEM)
{
HRESULT hres=0;
if(pDS)return false;

D3DXIMAGE_INFO SrcInfo;
hres=D3DXGetImageInfoFromFile(pchResource,&SrcInfo);
if(hres!=D3D_OK)return false;

hres=pDI->CreateOffscreenPlainSurface(
SrcInfo.Width,
SrcInfo.Height,
D3DFMT_A8R8G8B8,//SrcInfo.Format,
Pool,
&pDS,
0);
if(hres!=D3D_OK || pDS==0)return false;

hres=D3DXLoadSurfaceFromFile(pDS, 0, 0, pchResource, 0,D3DX_FILTER_NONE, 0, 0);
if(hres!=D3D_OK)return false;

return true;
}


~s_PictSurface()
{
if(pDS)pDS->Release();
pDS=0;
}
};
« Последнее редактирование: 28-12-2008 16:54 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #74 : 28-12-2008 16:57 » 

а, кстати, для того, Антон, что ты всё пытаешься сделать глобальными переменными, у меня выглядит так Улыбаюсь

Код:
struct s_D3DVals
{
IDirect3D9* pD3Dobject;
D3DPRESENT_PARAMETERS PresentationParameters;
IDirect3DDevice9* pDI;
D3DCAPS9 Caps;

s_D3DVals()
{
::memset(this,0,sizeof(*this));
}

~s_D3DVals()
{
if(pD3Dobject)pD3Dobject->Release();
pD3Dobject=0;
if(pDI)pDI->Release();
pDI=0;
}
};
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #75 : 28-12-2008 17:21 » 

А при нажатии клавиши как её передавать?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #76 : 28-12-2008 17:27 » 

Антон__, в смысле, ты имеешь в виду - как ввод обрабатывать ?
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #77 : 29-12-2008 09:50 » 

Если так не любишь глобальные, то хотя бы так сделай:
Код:
struct s_D3DVals
{
static IDirect3D9* pD3Dobject;
static IDirect3DDevice9* pDI;
static D3DPRESENT_PARAMETERS PresentationParameters;

// а вот это лишнее:
// static D3DCAPS9 Caps;
}
Не надо будет постоянно передавать объект класса. Отлично
« Последнее редактирование: 29-12-2008 09:54 от Антон__ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #78 : 29-12-2008 10:20 » 

Антон__ , D3DCAPS9 Caps - эт затесалось )) Фиг с ним.

А зачем объект класса то передавать ? Я указатель передаю ) А глобальные - это ты у нас любишь, а у меня во вьюшке всё осталось
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #79 : 29-12-2008 10:41 » 

Я имел в виду, что не надо будет писать:
Код:
void foo(s_d3dvals var)
{
var.pDi->........
}
Можно:
Код:
void foo()
{
s_D3dval::pDI->........
}
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #80 : 29-12-2008 10:51 » 

Антон__, ты явно не знаком с безопасным программированием. Лучше не спорь и откажись от глобальных переменных.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #81 : 29-12-2008 11:50 » 

McZim
Да, я не знаком.

Я так понимаю, что s_d3dvals нужна для того, чтобы знать изменяет ли функция глобальные переменные или нет.
Или я не прав?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #82 : 29-12-2008 12:32 » 

Антон__, в структура нужна для того, чтобы весь веник директиксовских указателей был собран в кучу и по возможности вообще скрыт от программиста Улыбаюсь Но совсем всё скрыть не получится, естественно
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #83 : 29-12-2008 12:51 » 

Тут можно устроить опрос?
А то мне хочется узнать сколько человек следят за темой.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #84 : 29-12-2008 13:01 » 

Антон__, думаю, только мы двое следим за темой Улыбаюсь Причём - ты больше, я гораздо меньше, урывками. Остальным просто интересно, чем всё это закончится Ага
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #85 : 29-12-2008 13:11 » 

Вот я и хочу узнать, есть ли смысл в этой теме.
Если больше никто не присоединится, то обсуждение можно закрывать. Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #86 : 30-12-2008 04:17 » 

зачем же закрывать, я, например, буду выкладывать, что у меня получается
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #87 : 30-12-2008 07:53 » 

Вы че тут закрывать собрались? Интересно ж Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #88 : 30-12-2008 09:12 » 

Ага, почти реалити-шоу:)
Записан
Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #89 : 30-12-2008 10:27 » 

Алексей, когда делать-то начнем?

У меня уже почти похоже на игру Улыбаюсь
Осталось ИИ добавить, можно еще взрывы и анимацию.
Записан
Страниц: 1 2 [3] 4 5   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines