Да помню начинания.
Вопрос тока нафиг это надо :)
Вот шейдера у них через Ж грузяться. Не без минимального ООП никуда.
STL ацтой, а чтобы был ООП и все такое и везде все быстро работало пишите свои препроцесоры, ща это вроде популярно
вы не любите STL? да вы просто не умеете его готовить ;)
насчет переписаных STL контейнеров..
сам переписываю некотороые.. ибо знаю где схитрить.. чисто под мою реализацию..
например вектора в которых неважен порядок.. реализация вставки.. и удаления работают гораздо быстрее ;)
вот тут вот надо спорить..
а в целом СТЛ справляеться со своей роботой.. как не грузилиб на него..
не нравиться скорость? пишите на асме.. ;) либо учитесь правильно, ефективно использовать..
Где почитать подробнее как все это устроено? UML-диаграммы может какие есть...
И зачем нужен lcc?
Kashey
>Вот шейдера у них через Ж грузяться.
какие шейдеры? в 99-то году
>И зачем нужен lcc?
если ты про компилятор lcc-win32, то подумай зачем нужны компилятор
IROV..
>например вектора в которых неважен порядок.. реализация вставки.. и удаления работают гораздо быстрее ;)
>вот тут вот надо спорить..
О!
Ето тъ про так назъваемъй std::set... ?
st0ke
Ты в ку3 не видел шейдеров? Нам тебя жаль... ;)
glMatrixMode(GL_TEXTURE); glTranslatef( cos( x)*scale, sin( x)*scale, 0); glMatrixMode( GL_MODELVEW);
Чем не шейдер?
XProger
а ну да, это вершинные шейдеры, но не в коем образе не вершинные програмы
st0ke
>а ну да, это вершинные шейдеры, но не в коем образе не вершинные програмы
месье сможет сформулировать отличие?
Mega
да!
шейдер который превел XProger является шейдером! Так как вершинные шейдеры не заменяют блок T&L, а строчки приводимые в посте 36 явно выполняется этим блоком!(но потом M$ слово програмы заменило на шейдер и всем понравилось это слова!)
XProger
Ого.
А с каких это пор функциональность блока T&L приравнивается к шейдерам? Типа "fixed functionality shader"? :-)
st0ke
>какие шейдеры? в 99-то году
Хех. А какая студия 7.1 в 99 году? Почему ето на 6-й вижалке сырцы не компилятся?
tav
>Почему ето на 6-й вижалке сырцы не компилятся?
скомпилить можно где угодно и как угодно(ведь сам Кармак то наверно в 6 писал(ну или в 5(ну или в 4(ну или ниже у меня нет))), надо время потрать чтобы там все собрать!
Zemedelec
Я думаю про массив, при удалении из середены которого дырка заполняетмся не сдвигом всего хвоста, а перемещением части хвоста размером с дырку :).
st0ke
>скомпилить можно где угодно и как угодно
Ну, само собой. Да хоть на Delphi. Вот сырцы только на паскаль перевести надо и всего делов -- компиль сколько хочешь.
>надо время потрать чтобы там все собрать!
Да я сырцы эти даже не видел. А проблемы возникли не у меня, а у автора этого топика.
Я другое хочу сказать.
Посмотри последнюю дату создания архива с сырцами. Да хотя бы версию игры, исходники которой представлены.
Почему в новую версию не могут добавить шейдеры?
Это я к тому, что высказывание "какие шейдеры? в 99-то году" равносильно скажем "Far Cry не поддерживает SM 3.0".
В новой версии Q3 шейдеров, конечно, нет, но 99 год тут сооовсеем не причём.
Zemedelec
>IROV..
>>например вектора в которых неважен порядок.. реализация вставки.. и удаления
>>работают гораздо быстрее ;)
>>вот тут вот надо спорить..
>О!
>Ето тъ про так назъваемъй std::set... ?
нуу я бы сказал что std::set это аля std::map но ни как не аля std::vector
вот собствено и оно.. ;)
за реализацию.. не пинать..
# pragma once template<class T> class CObjectContainer { public: typedef T * TVectorObject; typedef T * iterator; typedef const T * const_iterator; public: CObjectContainer() : m_NumOfVectorObject( 0) , m_CapacityVectorObject( 0) , m_VectorObject( 0) { } CObjectContainer( size_t Size) : m_NumOfVectorObject( 0) , m_CapacityVectorObject( Size) { m_VectorObject = new T[Size]; } public: inline T & operator[]( size_t i) { return m_VectorObject[i]; } inline const T & operator[]( size_t i)const { return m_VectorObject[i]; } inline T * data( ) { return m_VectorObject; } inline const T * data( )const { return m_VectorObject; } inline size_t size( )const { return m_NumOfVectorObject; } inline bool empty( )const { return m_NumOfVectorObject == 0; } inline size_t capacity( )const { return m_CapacityVectorObject; } inline void push_back( const T &_T) { if( m_NumOfVectorObject < m_CapacityVectorObject ) { m_VectorObject[m_NumOfVectorObject] = _T; ++m_NumOfVectorObject; } } inline T & push_back_reserve( ) { if( m_NumOfVectorObject < m_CapacityVectorObject ) { ++m_NumOfVectorObject; } return m_VectorObject[m_NumOfVectorObject-1]; } inline void erase( size_t i) { if( m_NumOfVectorObject > 0 ) { m_VectorObject[i] = m_VectorObject[--m_NumOfVectorObject]; } else { m_NumOfVectorObject = 0; } } inline void clear( ) { m_NumOfVectorObject = 0; } inline iterator begin( ) { return m_VectorObject; } inline const_iterator begin( ) const { return m_VectorObject; } inline iterator end( ) { return m_VectorObject + m_NumOfVectorObject; } inline const_iterator end( ) const { return m_VectorObject + m_NumOfVectorObject; } private: TVectorObject m_VectorObject; size_t m_NumOfVectorObject; size_t m_CapacityVectorObject; };
Linking...
cl_cin.obj : error LNK2001: unresolved external symbol _glConfig
cl_main.obj : error LNK2019: unresolved external symbol _GetRefAPI referenced in function _CL_InitRef
sv_bot.obj : error LNK2019: unresolved external symbol _GetBotLibAPI referenced in function _SV_BotInitBotLib
.\Debug/quake3.exe : fatal error LNK1120: 3 unresolved externals
Что не так?
Тема в архиве.