Пятница, 29 Марта 2024, 13:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » D3DXCreateTextureFromFile
D3DXCreateTextureFromFile
error_132Дата: Воскресенье, 31 Июля 2011, 23:09 | Сообщение # 1
частый гость
Сейчас нет на сайте
такая непонятная ситуация:
загрузил текстуру, открыл ехешник, ничего не отрисовалось. попробовал запустить через иде - приложение тутже вырубилось. дальше запустил дебагер - он написал, что мол файл текстуры, который я гружу, не существует. написал код вот так (а вдруг):
Code

std::cout << "Loading" << std::endl;
D3DXCreateTextureFromFile(pDevice, path, &Texture);
std::cout << "Loaded" << std::endl;

и тут пошло не пойми что, когда запустил через иде: в консоли написало только "Loading" (когда пробовал запустить дебаг тоже самое), а когда запустил ехешник написало "Loading" и "Loaded", но все равно ничего не отрисовалось, и почему запуск через иде и прост ехешник выдает разные результаты o_0
zodiakДата: Понедельник, 01 Августа 2011, 10:09 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Ну для начала проверь, что действительно файл на своем месте и правильно назначен рабочий каталог. Чему равна переменная path.
Если там все ок, то правильного ли формата файл.
Измени код

Code
HRESULT hr = D3DXCreateTextureFromFile(pDevice, path, &Texture);


и в дебаге проверь, что она возвращает, а затем смотри справку.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
error_132Дата: Понедельник, 01 Августа 2011, 23:43 | Сообщение # 3
частый гость
Сейчас нет на сайте
я не помню что вчера сделал, но работает все нормально, только ничего не отрисовывается(
придется рендер сначала переписывать, а то в этой куче кода не разберешь где бяка, тем более что дебагер говорит, что все ок

Добавлено (01.08.2011, 23:43)
---------------------------------------------
модеры, закройте тему, нашел я ту бяку которая все портила

DemeronДата: Понедельник, 01 Августа 2011, 23:58 | Сообщение # 4
User created in C++
Сейчас нет на сайте
Попробуй прописать полный путь до текстуры, например "C:\\test\\texture.png", а еще лучше что типо:
Code
if(FIALED(D3DXCreateTextureFromFile(pDevice, path, &Texture))) std::cout << "Can't Load Texture..." << std::endl; else std::cout << "Texture Load OK" << std::endl;
error_132Дата: Среда, 03 Августа 2011, 12:06 | Сообщение # 5
частый гость
Сейчас нет на сайте
с текстурами то я разобрался, точенее с тем что нифига не рисовалось - оказалось совсем забыл про нормали)))
теперь вот в чем проблема:
приложение почему-то работает только во время того, как нажимаю клавишы или вожу мышкой в окне, заметил эту фигню во время написания функции для счета фпс


Сообщение отредактировал error_132 - Среда, 03 Августа 2011, 12:07
DemeronДата: Среда, 03 Августа 2011, 12:14 | Сообщение # 6
User created in C++
Сейчас нет на сайте
Quote (error_132)
приложение почему-то работает только во время того, как нажимаю клавишы или вожу мышкой в окне, заметил эту фигню во время написания функции для счета фпс

Должно быть примерно так:
Code
    while( msg.message!=WM_QUIT )
  {
   if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
   {
    TranslateMessage( &msg );
    DispatchMessage( &msg );
   }
   else
    Render();
  }


а у тебя скорее всего так:

Code

  while( msg.message!=WM_QUIT )
  {
   if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
   {
    TranslateMessage( &msg );
    DispatchMessage( &msg );
    Render();
  }


Помогло?
error_132Дата: Среда, 03 Августа 2011, 12:40 | Сообщение # 7
частый гость
Сейчас нет на сайте
ща попробую, у меня через getmessage эта часть работает
DemeronДата: Среда, 03 Августа 2011, 12:50 | Сообщение # 8
User created in C++
Сейчас нет на сайте
Quote (error_132)
ща попробую, у меня через getmessage эта часть работает

один черт...

Я скорее всего уверен, что это из за этого, ведь у тебя выполняется главный цикл игры только когда приходят сообщения к твоему приложению.
error_132Дата: Среда, 03 Августа 2011, 12:52 | Сообщение # 9
частый гость
Сейчас нет на сайте
спасибо) точно - в том и проблема была)
DemeronДата: Среда, 03 Августа 2011, 12:52 | Сообщение # 10
User created in C++
Сейчас нет на сайте
С тебя + happy
error_132Дата: Среда, 03 Августа 2011, 13:15 | Сообщение # 11
частый гость
Сейчас нет на сайте
чет меня на баги прям прет)) такая фигня: когда поварачиваешься в любую сторону от стены градусов на 30 - она исчезаеет, хотя по сути есть место для отрисовки ее части (такая фигня только с 3 стнеками из 9)
(кто-нибудь знает как сделать чтоб нельзя было менять размер окна?)
KornivalДата: Среда, 03 Августа 2011, 13:29 | Сообщение # 12
The Witcher
Сейчас нет на сайте
Quote (error_132)
(кто-нибудь знает как сделать чтоб нельзя было менять размер окна?)

Поставь стиль WS_SYSMENU вместо WS_OVERLAPPEDWINDOW когда вызываешь функцию CreateWindow
error_132Дата: Среда, 03 Августа 2011, 13:32 | Сообщение # 13
частый гость
Сейчас нет на сайте
Kornival, в этом то и трабла, у меня стоял WM_SYSMENU, и если скрыть окно, а потом снова разверенуть, то картинка дальше не рендерится, поэтому я поставил WS_OVERLAPPEDWINDOW, с ней все ок, только теперь меня бесит тот факт что можно изменять размер

Сообщение отредактировал error_132 - Среда, 03 Августа 2011, 13:33
KornivalДата: Среда, 03 Августа 2011, 13:38 | Сообщение # 14
The Witcher
Сейчас нет на сайте
Если нужно вообще убрать все кроме клиентской области поставь WS_POPUP

Добавлено (03.08.2011, 13:35)
---------------------------------------------

Quote
Если нужно вообще убрать все кроме клиентской области поставь WS_POPUP

Это было написано вдогонку к первому посту.
Quote
Kornival, в этом то и трабла, у меня стоял WM_SYSMENU, и если скрыть окно, а потом снова разверенуть, то картинка дальше не рендерится, поэтому я поставил WS_OVERLAPPEDWINDOW, с ней все ок, только теперь меня бусит тот факт что можно изменять размер

Попробуй в ответ на сообщение WM_SIZE вызывать InvalidateRect

Добавлено (03.08.2011, 13:38)
---------------------------------------------
Cтоп! Как же ты его скрываешь если стоит WS_SYSMENU?

error_132Дата: Среда, 03 Августа 2011, 13:49 | Сообщение # 15
частый гость
Сейчас нет на сайте
Kornival, например запущу другую прогу - окно сразу скрывается

Добавлено (03.08.2011, 13:49)
---------------------------------------------
точнее оно не скрывается, а уходит на второй план, но это проблемы не меняет, все равно ееееепрекращает отрисовывать

Сообщение отредактировал error_132 - Среда, 03 Августа 2011, 13:48
DemeronДата: Среда, 03 Августа 2011, 15:08 | Сообщение # 16
User created in C++
Сейчас нет на сайте
Quote (error_132)
Kornival, в этом то и трабла, у меня стоял WM_SYSMENU, и если скрыть окно, а потом снова разверенуть, то картинка дальше не рендерится

Для оконного режима: WS_SYSMENU|WS_CAPTION|WS_MINIMIZEBOX (последнее чтобы можно было сворачивать)
Для полноэкранного: WS_POPUP (и все!)

А насчет того что картинка перестает рендериться - копай в сторону LostDevice и ResetDevice, если нет - могу скинуть код.
error_132Дата: Среда, 03 Августа 2011, 17:12 | Сообщение # 17
частый гость
Сейчас нет на сайте
Demeron, опять помог)) спс)
Форум игроделов » Программирование » C/C++ » D3DXCreateTextureFromFile
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг