Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
Добрый день. Пытаюсь переписать работу с OpenGL на вызов динамически их функций, получается, но както очень многословно. Вопросы внутри кода. Спасибо! Чистый С. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 16:50 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
Я тебе не советую тут ничего упрощать. Одна иницилизация. Скучно. Ты напиши хотя-бы тысячи четыре строк и потом приходи в форум со ссылкой на git или svn и посмотрим что можно рефакторить и как. Сама по себе OpenGL с точки зрения ее API достаточно умная библиотека и лаконичная. Если ты ее будешь правильно (без избыточных пере-инициализаций) использовать то это успех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 17:57 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
mayton, я пока что склоняюсь к тому чтобы взять на питоне написать скриптик который сделает эту скучнейшую работу автоматом, всетаки 350 перелопатить руками вообще не интересно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 18:24 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
MMM_CorpПытаюсь переписать работу с OpenGL на вызов динамически их функций ... Зачем это надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 18:35 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
Dima T, чтобы скрыть таблицу импорта напр. это не я сам себе такую задачку придумал, такой у нас подход к всяким импортам что мало чуток выходит за рамки обязательного для программы, кроме того это может быть полезно когда хотим чтото одно использовать напр. DirectX, OpenGL, OpenGL glut и т.д..... в общем надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 18:38 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
Тогда пиши скрипт для генерации cpp. Быстрее будет для 350 функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 18:54 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
MMM_Corpmayton, я пока что склоняюсь к тому чтобы взять на питоне написать скриптик который сделает эту скучнейшую работу автоматом, всетаки 350 перелопатить руками вообще не интересно... Ты пришёл в фан-сектор С++ чтобы спросить о скриптике на Питоне? Щас тебя закидают шапками. Для автоматизации рутины есть препроцессор. #define/#ifdef/#endif/#else. Попробуй его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 19:52 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
mayton, Научно доказано, что питон - тормоз ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 21:11 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
ребята, все что мне нужно это взять с стандартного gl.h и переделать его на динамический вызов функций, это все.... но вот как это сделать это уже другой вопрос, да хоть на ночь поставил бы хоть самый тормознутый перл какойто или еще что... главное не долбить руки об клаву на переводе 350 функций на динамический вызов. Если знаете как ускорить процесс, или как решить быстро подобную проблему - велком. За этим и пришол. Предложите варианты получше чем как-то автоматизировано нагенерить нужный код средствами православного С... я ж не против, но изза нехватки опыта в сишке пока не знаю как это сделать. Как идея витает - написать скриптик на питоне напр. или на делфи который нагенерит нужный код. Препроцесинг не очень понятно как мне здесь поможет, не приходит в голову ничего честно говоря, открыт для идей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 21:20 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
MMM_Corpглавное не долбить руки об клаву на переводе 350 функций на динамический вызов. Если знаете как ускорить процесс, или как решить быстро подобную проблему - велком. Копипаст - очень сильная вещь. Скопировать объявления функций, вставить в начало каждой "typedef ", в середину - "(* T" и ")" и... всё, готово. Остаётся только простенький макрос с объявлением переменной и получением адреса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 21:52 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
MMM_CorpПытаюсь переписать работу с OpenGL на вызов динамически их функций,Например можно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. MMM_CorpЧистый С.Почему? Вполне можно писать на C++, но использовать его как better C, или как C with Classes. Тогда функции-обёртки (dgl*) можно сделать inline, и их крошечный overhead станет вообще нулевой. MMM_Corpглавное не долбить руки об клаву на переводе 350 функций на динамический вызов.Очень маловероятно, что у вас в коде будут использоваться 350 разных OpenGL-функций. Добавляйте функции-обёртки по мере необходимости. Заодно сильно сэкономите на количестве вызовов GetProcAddress при инициализации OpenGL. MMM_Corp Код: plaintext 1. 2. Ваша вера в OpenGL не сильна :). maytonMMM_Corpmayton, я пока что склоняюсь к тому чтобы взять на питоне написать скриптик который сделает эту скучнейшую работу автоматом, всетаки 350 перелопатить руками вообще не интересно... Ты пришёл в фан-сектор С++ чтобы спросить о скриптике на Питоне? Щас тебя закидают шапками.Да ладно, когда script генерирует C++-код -- это нормальный подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2015, 06:09 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
Пётр Седов, при вызове функций, нет проверки на инициализацию. Т.к. инициализация по отношению к вызову функций не атомарна, то потенциально есть ошибка это. (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2015, 00:14 |
|
||
|
упростить код, убрать простыню однотипного кода
|
|||
|---|---|---|---|
|
#18+
kolobok0при вызове функций, нет проверки на инициализацию.Да, можно проверять, что функции dgl* вызываются между load_open_gl_lib и unload_open_gl_lib: Код: plaintext 1. 2. 3. 4. 5. 6. MMM_Corp, если используете только Visual C++, то можете в книге «Programming Applications for Microsoft Windows» (Джеффри Рихтер) почитать раздел «Delay-Loading a DLL», вдруг вам подойдёт. Microsoft Visual C++ 6.0 offers a fantastic new feature to make working with DLLs easier: delay-load DLLs. A delay-load DLL is a DLL that is implicitly linked but not actually loaded until your code attempts to reference a symbol contained within the DLL. Также, при работе с DLL крайне советую бесплатную программу Dependency Walker . Она делает как статический анализ, так и динамический (запускает указанную программу и отслеживает вызовы LoadLibrary/GetProcAddress). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2015, 01:58 |
|
||
|
|

start [/forum/search_topic.php?author=pointer1&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 641ms |
| total: | 831ms |

| 0 / 0 |
