GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (69 стр.)

Сообщения на форуме пользователя Andrey (69 стр.)

STL. Использовать или нет?24 сен. 200912:06#887
Zeux
>> vector - как безопасный динамический массив, не более.
>Против вектора у меня как раз претензий нет. Ну точнее есть, но я боюсь меня не поймут.
пиши, кому нужно поймут.
STL. Использовать или нет?24 сен. 200910:53#870
innuendo
да и как правильно заметил kas хешмапа желательно статическая что-бы меньше дефрагментаций, да и по статическому массивчику быстрей доступ.
STL. Использовать или нет?24 сен. 200910:20#863
Nikopol
>Ghost2
> > Была задача на FIFO - использовал std::list
> А можно было - circular buffer. Со всеми вытекающими из этого плюсами.
>А ежели число элементов превысит ёмкость circular buffer ? ;-)
возможно есть ограничение сверху на число элементов.
OpenGL и многопоточность24 сен. 200910:08#9
mik2060
перед использованием ресурсов в другом потоке:

делаешь в текущем wgMakeCurrent(NULL, NULL); // что-бы освободить контекст в текущем потоке.
в другом wgMakeCurrent(hDC, hGLRC); // сделать текущим контекст

hDC, hGLRC - получены при инициализации OpenGL

wglShareList не использовал, У меня 1 контекст

Проблема с fstream в MSVC++ 2008 [Express] (не using namespace std)23 сен. 200917:25#4
Drazd
зачем тебе эти тормозные потоки ввода/вывода?
ShadowMap проблема только на ATI14 сен. 200918:45#30
AleksGusarov
блокируй доступ к текстуре через критическую секцию, закончил с ней работать отпускай, и блокируй как можно для меньшего числа операций.
к примеру в одном потоке:
 
EnterCriticalSection()
glBindTexture(...)
LeaveCriticalSection()
в другом:
EnterCriticalSection()
glTexImage2D(...)
LeaveCriticalSection()
да и повтыкай везде glGetError что-то тут мне кажется где-то будет GL_INVALID_OPERATION, а GetLastError скажет что ресурс занят(другмим потоком).

ShadowMap проблема только на ATI14 сен. 200916:53#27
AleksGusarov
wglMakeCurrent что возращает?
если FALSE проверь GetLastError и выведи ошибку через FormatMessage тоже самое проверь с wglShareLists.
>cо всеми текстурами нормально - проблем нет, а ShadowMap-текстура работает не всегда.
может проблема с синхронизацией?
ShadowMap проблема только на ATI14 сен. 200914:59#25
AleksGusarov
попробуй переключать потоки через wglMakeCurrent
http://www.codenet.ru/progr/opengl/faq/gl_024.php
http://www.gamedev.ru/code/forum/?id=76072
Squall и Open Source14 сен. 200913:10#18
maruch
просмотрел мельком. Небольшие замечания по коду:
- замени функцию vsprintf на безопасный аналог vsnprintf;
- проверяй все указатели на NULL + assert;
- возможно оставить такие функции как IsBadReadPtr в Debug режиме.
ShadowMap проблема только на ATI14 сен. 200910:21#4
Executor
>Кстати, это расширение для ОГЛ 1.4 и выше не нужно, ибо в ядре всё...
какое старье...
ShadowMap проблема только на ATI14 сен. 200910:16#2
AleksGusarov
> Кажется это может быть связано с форматом текстуы, памятью под текстуру,
> внутренними проблемами видеокарт ATI.
> Но как найти, определить и ОБОЙТИ эту проблему?
Какая карта? GL_ARB_shadow поддерживается?
для начала glGetError, ну и то что сказал Executor
Wolfenstein 20098 сен. 200918:35#75
innuendo
>а ты слышал по client\server GL архитектуру ?
слышал. только это не имеет отношения к сетевым приложениям.
И какое отношение архитектура OpenGL имеет к сетевому коду игры? твой вопрос некорректный.
Wolfenstein 20098 сен. 200918:14#73
JokerR
>OpenGL лучше оптимизирован для работы по сети
ты что, прикалываешься? :)
auto_ptr, smart pointer, зачем все это?2 сен. 200918:47#23
shakhtar
>Особого преимущества пока-что так и не увидел. Наверное пока буду пользоваться по старинке, new/delete. Мне пока не лень в деструкторе написать лишний >раз delete.
Вот пример кода где нужно следить за удалением
bool func()
{

  try {
    // временный объект
    Object *obj = new Object;

    if (object->func1()) { // функция кидает какую-нибудь хрень типа наследников от std::exception std::runtime_error и т.д.
      if (obj) {
        delete obj;
      }
      return false;
    }
...
    if (object->func2()) { // функция кидает какую-нибудь хрень типа наследников от std::exception std::runtime_error и т.д.
      if (obj) {
        delete obj;
      }
      return false;
    }
...

    if (obj) {
      delete obj;
    }
    return true;
  }
  catch(const std::exception& ex) {
    if (obj) {
      delete obj;
    }
    fprintf(stderr, "%s%s", "Excerption: ", ex.what());
  }
}
А вот наглядное удобное применение std::auto_ptr, где гарантировано при выходе память будет освобождена. По идее, в проекте не должно быть явных вызовов delete/delete []. Где что слышал что признак хорошего дизайна.
bool func()
{

  try {
    // временный объект
    std::auto_ptr<Object> obj(new Object);

    if (object->func1()) { // функция кидает какую-нибудь хрень типа наследников от std::exception -  std::runtime_error и т.д.
      return false;
    }
...
    if (object->func2()) { // функция кидает какую-нибудь хрень типа наследников от std::exception - std::runtime_error и т.д.
      return false;
    }
...

    return true;
  }
  catch(const std::exception& ex) {
    fprintf(stderr, "%s%s", "Excerption: ", ex.what());
  }
}

Исходники OpenGL2 сен. 200914:11#7
g-cont
>Такой вопрос - что вы там надеетесь найти?
ну я как-то проекцию смотрел как строить. Избавился таким образом от glOrtho/gluPerspective

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр