Уважаемый Steps3D, перестаньте выкладывать DеRьMо на главную страницу! Это вообще не актуально.
Мне такое DеRьMо не приходит, моим друзьям тоже; нечего регистрироваться и подписываться на новости на сомнительных сайтах.
На тему DеRьMа.
Сообщений 1 страница 21 из 21
Поделиться12010-03-17 23:13:27
Поделиться22010-03-18 11:33:56
Не надо так явно демонстрировать свое незнание английского - на рисунке речь идет о покупке электронной книги в библиотеки и о проблемах, связынных с етм, что купленная книга защищена от копирования.
Причем тут сомнительные сайты, подписка на новости и т.п. ?
Поделиться32010-03-18 14:59:08
Причем тут сомнительные сайты, подписка на новости и т.п. ?
Просто я такого не встречал. Или просто не обращал внимание...
Влюбом случае сайт не о DеRьMе, так зачем его сюда выкладывать?
Поделиться42010-11-01 20:30:44
Ещё на тему дерьма. Что-то хостинг, поддерживающий этот форум, совсем оборзел! Сначало эротику стали выкладывать в рекламе, сейчас вот встретил вопрос - "оргазм - лишённый окраски - это:". Это, на мой вгляд, совсем отвратительно.
Поделиться52010-11-04 11:29:24
А у меня большинство скриптов и баннеров заблокированы и я этого даже не вижу
Это бесплатьнй хостинг, так что претензии к нему неуместны ((
Поделиться62010-11-04 16:20:35
Это бесплатьнй хостинг, так что претензии к нему неуместны
Дык вам уже два раза предлагали совершенно бесплатно переехать на платный хостинг) Так что действительно, претензии не уместны
Поделиться72010-11-04 17:20:27
Дело не в претензии, просто я предпочитаю иметь контроль. Несколько лет назад была уже попытка подобного переезда и через несколько месяцев все вернулось снова сюда (не считая потерянных сообщений в форуме).
Код надо переносить в репозиторий, я склоняюсь к гуглокоду, просто код давно пора серьезно переписать и ориентировать на новые версии OpenGL
Скорее всего перенеся работу с текстурами и расширенями на существующие библиотеки (DevIL, GLEW) - насчет изображений я полностью уверен, про GLEW еще какие-то сомнения остались.
Ну и понятно, чтобы весь фреймворк компилировался в одну библиотеку и не надо было постоянное все файлы перекомпилировать.
Когда что-то более-менее работающее будет я собираюсь это перенести в репозиторий, а пока можно пообсуждать.
Мне интересны какие есть идеи
Поделиться82010-11-05 14:48:58
Дело не в претензии, просто я предпочитаю иметь контроль.
Ok, whatever. Хотя я гарантирую работу минимум на ближайшие 14 месяцев))
про GLEW еще какие-то сомнения остались.
Напрасно. GLEW не имеет runtime оверхедов GLEE, саму библиотеку можно генерировать прилагающимся скриптом по списку нужных расширений.
Я опять повторюсь, но меня раздражает не сколько форум, сколько то, что сайт находится на народе. Вы сами себе создаете таким образом лишние проблемы. И это, возможно, сильно замедляет выход новых статей.
Поделиться92010-11-06 14:14:46
Насчет GLEW я наткнулся на непреятную фичу - без выставления glewExperimental у меня не подключились VAO (на последних драйверах и GeForce 460)
Иногда возникает ощущение, что проще допилить libExt - дать поддержку GL 4.1 и наиболее важных расширений. Как-то тот факт, что VAO почему-то оказались в разряде экспериментальных очень растроил
Еще очень хочется выкинуть вообще использование STL - меня уже достали дебильный класс string, не имеющий аналога strlwr/strupr, методы вроде remove_if, которые ничего не удаляют и ориентация на фактически макросы. Основное, что меня пока удерживает - это замена стандартных классов своими.
Интересно было бы узнать Ваше мнение.
А чем раздражает именно народ ?
У меня нет ощущения, что именно это сдерживает выход новых статей - там главное разобраться, сделать примеры и текст.
Поделиться102010-11-06 15:52:46
Интересно было бы узнать Ваше мнение.
Я бы советовал вам посмотреть на то, что уже сделано.
http://www.nopper.tv/opengl.html - у этого человека есть примеры, вместе с которыми поставляются мего-класные, лаконичные, продуманные модули. Его талант даже на opengl.org ценят.
Поделиться112010-11-06 22:10:18
А чем раздражает именно народ ?
У меня нет ощущения, что именно это сдерживает выход новых статей - там главное разобраться, сделать примеры и текст.
Тем, что верстку приходестя делать тем или иным образом вручную. Что по меньшей мере замедляет исправление ошибок. Плюс, как показывает пример википедии, назло статьи при исправлениях портят крайне редко. И даже если портят - то откат изменений - два щелчка мышкой.
методы вроде remove_if
remove_if очень оптимален, для контейнеров типо вектора. И вот честно, мне еще никто не показал, как сделать вектор лучше, чем он реализован в STL.
меня уже достали дебильный класс string, не имеющий аналога strlwr/strupr
Если вы про чудо вброс с галвной страницы, то это оформляется в шаблонный метод из одной строчки и не имеет runtime оверхеда. Чего не скажешь, например о NSString, вызов каждого метода которой в лучшем (и крайне редком) случае имеет оверхед на вызов C-метода, в среднем эквивалентен виртуальной функции, в худшем - до 3 раз медленнее, чем виртуальный вызов (я уже приводил пруфлинки на эту тему). И я не могу сказать, что [NSString stringWithCString:"foo" ecoding:NSUTF8StringEncoding] выглядит гораздо лучше, учитывая, что подобные действия приходится делать чаще, чем toupper. При это std::transform имеет (в релизной сборке) нулевой оверхед на вызов и применим к любым контейнерам. Единственное, чего мне не хватает в std::string - метода, аналогичного QString::Arg. И то, необходимость в нем стоит достаточно редко. А весь тот бред на манер Osp::Base::String или, боже упаси, NSString - используется крайне редко, и по логике, не имеет отношения к строкам вообще. Мы с вами не однократно уже спорили на эту тему, и я отлично понимаю, что эти споры бесполезны, но все же, давайте к таким вбросам делать приписки "ИМХО", а не выдавать их за истину в последней инстанции. На gd.ru как-то был мего эпичный спор на тему STL. Противники STL в итоге сами загнали себя в угол, но при этом не прекращали крайне ожесточенных попыток убедить всех, что они правы. То, что вам очень не нравится С++ - уже всем давно понятно. Но зачем постоянно давать нелепые ссылки класса "C++ is bullshit", в которых цепляются к конкрентным вещам на конкретных платформах, причем то, к чему они цепляются одинаково справедливо для любого компилируемого языка? Зачем постоянно приводить некие методы из языка и постулировать, что "они bullshit, вот Obj-C сделанно все круче. Фиг с ним что в n раз медленнее (эпичный NSArray с около-логарифмическим временем доступа к элементу), но вы смотрите как круто"? Зачем, в конце концов, вообще использовать этот язык в своих примерах? Почему не писать на С? Или даже не на Python? То, что язык используется порядка 20 лет, и ему не нужен iPhone, что бы держаться на верху списка самых используемых языков уже говорит о том, что все ошибки в дизайне языка (да, они есть, и их достаточно много) компенсируются его возможностями. Особенно если уметь их применять, а не говорить, что жизнь язык - очень плохая вещь.
Насчет GLEW я наткнулся на непреятную фичу - без выставления glewExperimental у меня не подключились VAO
Какая версия? Причем не GLEW, а драйвера? Разработчик говорит, что это связанно с тем, что драйвер не всегда корректно возвращает строку с расширениями, если часть из них является экспериментальными в драйвере. Код инициализации VAO (да вообще любого расширения) выглядит так:
#ifdef GL_ARB_vertex_array_object CONST_CAST(GLEW_ARB_vertex_array_object) = glewGetExtension("GL_ARB_vertex_array_object"); if (glewExperimental || GLEW_ARB_vertex_array_object) CONST_CAST(GLEW_ARB_vertex_array_object) = !_glewInit_GL_ARB_vertex_array_object(GLEW_CONTEXT_ARG_VAR_INIT); #endif /* GL_ARB_vertex_array_object */
Очевидно, что glewExperimental нужен для инициализации только в том случае, если драйвер не вернул VAO в строке расширений. Такая проблема есть, например, на 190.xx драйверах. В любом случае, на его поддержку не надо тратить собственного времени и он вообще не имеет зависимостей при сборке (не нужно даже наличие opengl хедеров).
Поделиться122010-11-07 11:48:42
Насчет remove_if - я имел в в иду уродское название метода, который вопреки названию ничего не удаляет
Про строки - тот же QString ууделывает std::string под удобству
Насчет нулвевого оверхеда - это в теории. А вот как на практике. В С++ inline необязателен и компилятор имеет право его игнорировать.
И просто удобно иметь в классе строки необходимый набор методов, который у std::string кривой и недостаточный.
Насчет QString::Arg полностью согласен - намного лучше всех этих стримов (которые кроме как для лога ни для чего больше не годятся)
Про obj-c я ничего в этот раз е писал и хорошо понимаю какой там оверхед - но за него я получаю гибкость на runtime.
Про GLEW - я написал - драйвера самые свежие, glew-1.5.6, при этом GLEW говорит что _ARB_vertex_array_object поддерживается, т.е. IMHO это странность GLEW
У нас уже повторяется обсуждение C++/STL и т.п. - да я согласен, что для определенного (но узкого круга задач) С++ очень удобен. У него очень удобная модель работы с АДТ (вроде классов vec2, mat4 и т.п.). Но вот называть это ООП - это IMHO не верно
Мне было интересно узнать Ваше мнение на тему переписывания кода, а вместо этого Вы стали писать какой плохой obj-c (
Поделиться132010-11-07 16:04:21
Насчет нулвевого оверхеда - это в теории
C шаблонами компилятору всегда проще раскрутить в инлайн. Особенно с однострочными шаблонами. И уж тем более это будет слелано в релизной сборке. Про слово inline я не говорил. Я говорил про in-place инстанцирование.
но за него я получаю гибкость на runtime.
В соседней ветке я уже задавал вопрос - когда она вам реально была нужна? То есть не в аккадемическом примере, что дескать можно вызвать метод по строчке его сигнатуры? Я могу хоть минимально представить себе ее необходимость в языках, понимающих eval. Но в компилируемых языках - увольте. К тому же по факту, ряд "супер" возможностей Оbj-C, например делегирование, реализуются на С++ чуть ли не построчно. Оно, конечно, нельзя использовать id (хотя можно, можно, было бы желание) в качестве типа делегата, но в промышленном коде никто и никогда не будет использовать id. В первую очередь это небезопастно, особенно для библиотечного интерфейса. Попытка сделать это безопасным приведет к резкому (и абсолютно не оправданному) падению производительности. Так что "гибскости рантайма" всегда будут стараться избежать за счет строгой, статичной типизации. Более того, это касается не только Obj-C.
glew-1.5.6,
Попробуйте воспользоваться 1.5.7. Приведенный код из него.
У нас уже повторяется обсуждение C++/STL и т.п. - да я согласен, что для определенного (но узкого круга задач) С++ очень удобен. У него очень удобная модель работы с АДТ (вроде классов vec2, mat4 и т.п.). Но вот называть это ООП - это IMHO не верно
Ну да, а Хелм и компания - сборище не понятных людей. Кстати они совершенно спокойно приводили примеры как C++, так и на Smalltalk.
Мне было интересно узнать Ваше мнение на тему переписывания кода, а вместо этого Вы стали писать какой плохой obj-c
Простите, но фраза "омерзительный бред" принадлежит не мне. И я не говорил, что Obj-C плохой конкретно сейчас. А мнение, какое мнение? Что конкретно обсуждать? Замену libExt на GLEW? libTexture на Devil? Но с этим и так более менее все понятно. Выбрасывание STL из кода? А какие у этого плюсы? Что это даст? Сколько раз в конкретно коде фреймворка вы нуждались в недостающих методах string? Сколько раз вам мешала "убогость" алгоритмов (если вы вообще их использовали)? Как бы в чем от этого будет профит?
Насчет remove_if - я имел в в иду уродское название метода, который вопреки названию ничего не удаляет
Он удаляет объекты, но по ряду причин не изменяет длину контейнера. Причины, кстати, хорошо описаны у Алены-С++
Поделиться142010-11-07 16:12:52
Как бы в чем от этого будет профит?
Или Steps3D говорил о модулях для OpenGL 4 или я не в теме.
Поделиться152010-11-07 16:14:11
Или Steps3D говорил о модулях для OpenGL 4 или я не в теме.
И причем тут STL? O_O
Поделиться162010-11-07 20:29:10
Профит в том, что по побольшому счету STL там нафиг не нужен - максимум строки и несколько мэпов. И мне лично больше нравится не template-код, а нормальные один раз откомпилированный код, которые легко отлаживается и полностью предсказуем
И не кидает exception-ов, намного быстроее компилируется.
А мне например постоянно мешается кривизна std::string, когда надо парсить текстовый файл и хочется иметь простые и понятные контейнеры
Почему remove_if сделан так, что он не соотствует название -мне по барабану, просто зачем тогда было выбирать заведомо неверное имя
Мне было бы действительно интересно услышать мнение насчет фреймворка для GL4, а не продолжать старый флейм (я уважаю Ваше мнение, но я с ним не согласен и не вижу повода соглашаться - на каждый язык/фреймворк найдется достаточно дейстивтельно поддерживающих людей, Вы поддерживаете одно, я другое)
ЗЫ. А Вы согласны у высказыванием Страуструпа, что c00x сделан для облегчения изучения зыка ? )))
ЗЗЫ. Давайте все-таки закончим флейм и перейдем на графику ?
Поделиться172010-11-07 21:05:54
И не кидает exception-ов, намного быстроее компилируется.
После самсунговской бады я исключения вообще вдвойне полюбил. Уберубогий способ, основанный на goto вообще не приносит счастья. Эти молодцы даже SjLj умудрились отрубить...
А Вы согласны у высказыванием Страуструпа, что c00x сделан для облегчения изучения зыка
Ну да. Он местами очень забавно шутит. Мне, в принципе, нравятся лямбды и decltype с auto. Глубины дао r-value reference и move-only конструкторов я пока не познал во всей полноте. variadic темплейты применимы сранительно редко, поэтому мне на них глубоко все равно. Нормальных атомиков оченьма хочется, но разработчики компиляторов на них, почему-то, забили. То, как в стандарт внесли многопоточность тоже не потрясает воображения. При этом 90% процентов нововведений охватывет супертонкие материи, которые явно новичкам жизнь не улучшат.
Давайте все-таки закончим флейм и перейдем на графику?
Да, согласен, это очень разумно.
Мне было бы действительно интересно услышать мнение насчет фреймворка для GL4
Ну, он видимо нужен) Просто не совсем ясно, что понимается в данном случае под фреймворком...
Поделиться182010-11-08 10:03:48
Ну, он видимо нужен) Просто не совсем ясно, что понимается в данном случае под фреймворком...
Некоторый набор простых классов и примеров - обертки над основны GL-сущностями
Например - Program, VertexBuffer, Texture, Sampler и т.п.
Работу с текстурами по-видимому проще перевести на DevIL, добавить поддержку 1-2 простызх форматов для моделей (ase, obj и т.п.)
Поделиться192010-11-08 17:32:00
А что такого в самсунговской баде ?
Поделиться202010-11-08 17:58:16
А что такого в самсунговской баде ?
Они решили, что исключения дают нечто, под названиям large runtime overhead (что бы это не значило на gcc 4.4.1, с его полной поддержкой RAII и принципом "нет броска - нет оверхеда"), хотя на айфонах с тем же компилятором его почему-то нет. Да, я не спорю, в случае броска оверхед есть. Но исключение оно на то и исключение, что бы не происходить от каждого дуновения. Затем чуваки решили, что SjLj это архаично и не безопасно. Финал абсолютно эпичем. Самсунг на полном серъезе предлагает использовать goto для обработки исключений.
То есть делать прмерно следующее:
Osp::SomeOspClass foo; if( IsFailed(foo.Construct ( some strange args ) ) goto Catch; ... Catch: //Try to do a cleanup, if you can figure out, what to clean return E_FAILED;
Более того, у них есть специальный макрос для верхнего if.
На этом их эпичность не заканчивается. Вообще, такое ощущение, что чуваки, которые проектировали и разрабатывали это всю жизнь работали только с Java и даже до старта разработки не знали о том, что С++ существует. Это приводит к тому, что чуваки везде пытаются громоздить Java-style конструкции. Например, у них есть библиотека контейнеров. Сделана она по, гм, идеологии, Java (хотя в данном случае больше похоже на Obj-C). Только вот что такое refcount (ну или GC) мама им не рассказывала. Зато они делают вид, что осознают проблемы владения объекта. Из-за этого у них:
1. Есть метод Clean(bool), который при передаче в него true вызывает delete у содержащихся в нем объектов. Деструктор вызывает Clean(false), так что если перед ним забыть в нужных случаях написать этот самый Clean(true), то случится утечка.
2. Есть 2n методов, заканчивающихся на N. Это означает, что контейнер возвращаемый (а в ряде случаев, у делегатов, передаваемый) методом сам владеет объектами внутри себя. То есть без Clean(true) утечет память. Ну и естественно контейнер может хранить только наследников Osp::Base::Object, как же можно иначе.
Ну и бесит, например, подход к libc. Используют сильно порезанную версию newlib, при этом хедеры от полной версии libc. В купе с weak-linkage это доставляет много счастья при переносе чужих библиотек на Bada.
Зато в последней официальной прошивке вейва для России (это важно, с евро прошивкой все тип-топ) драйвер GPU может случайным образом уйти в deadlock при загрузке текстуры. Потом аппарат минуты две просто намертво висит (только вытаскивание аккумулятора может его выключить), а затем демонстрирует красивое, нежно-голубенькое окошко, где говорит, что дедлок-ма в видеоподсистеме-ма. Причем из этого своеобразного BSOD телефон можно вывести только вытаскиванием батареи. Так что плохо все в самсунговской баде...
Отредактировано crsib (2010-11-08 17:59:51)
Поделиться212010-11-08 19:26:57
Забористую траву ребята где-то нашли ))