* * * Форумы на Наша-Life THREAD * * * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- THREAD : Vgui элементы для тулзя Started at 11-10-2008 16:34 by fire64 Visit at https://forums.nashalife.ru/showthread.php?threadid=47308 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 1] Author : fire64 Date : 11-10-2008 16:34 Title : Vgui элементы для тулзы решил я написать тут одну тулзу для одного мода и хочу использовать в ней vgui элементы но что-то не получается. вот собственно код [quote] #include #include #include #include "interface.h" #include #include #include #include #include #include #include #include #include #include "filesystem.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // Load vgui CSysModule *vguiModule = Sys_LoadModule("bin/vgui2.dll"); if (!vguiModule) { vguiModule = Sys_LoadModule("vgui2.dll"); } CreateInterfaceFn vguiFactory = Sys_GetFactory(vguiModule); if (!vguiFactory) { MessageBox(0,"Fatal error: Could not load vgui2.dll\n","Error",MB_OK); return 2; } CSysModule *filesystemModule = Sys_LoadModule("bin/filesystem_stdio.dll"); if (!filesystemModule) { filesystemModule = Sys_LoadModule("filesystem_stdio.dll"); } CreateInterfaceFn filesystemFactory = Sys_GetFactory(filesystemModule); if (!filesystemFactory) { MessageBox(0,"Fatal error: Could not load bin/filesystem_stdio.dll\n","Error",MB_OK); return 2; } // Initialize interfaces CreateInterfaceFn factories[2]; factories[0] = vguiFactory; factories[1] = filesystemFactory; if (!vgui::VGui_InitInterfacesList( "VGUI", factories, 2)) { MessageBox(0,"Fatal error: Could not initalize vgui2.dll\n","Error",MB_OK); return 3; } // In order to load resource files the file must be in your vgui filesystem path. vgui::filesystem()->AddSearchPath("../", "resources"); // Init the surface vgui::surface()->Init(); #if 0 // I do not know, why is not loaded // Load the scheme if (!vgui::scheme()->LoadSchemeFromFile("Resource/TrackerScheme.res", "Tracker")) { return 1; } #endif // localization vgui::localize()->AddFile(vgui::filesystem(), "Resource/platform_english.txt"); // Make a embedded panel vgui::Panel *panel = new vgui::Panel(NULL, "TopPanel"); vgui::surface()->SetEmbeddedPanel( panel->GetVPanel() ); vgui::Frame *pFrame = new vgui::Frame( panel, "MyFrame" ); pFrame->SetScheme("ClientScheme.res"); pFrame->SetSize( 100, 100 ); pFrame->SetTitle("My First Frame", true ); pFrame->Activate(); // Start vgui vgui::ivgui()->Start(); // Run app frame loop // while (vgui::ivgui()->IsRunning()) // { // vgui::ivgui()->RunFrame(); // } // Shutdown vgui::surface()->Shutdown(); // delete panel; Sys_UnloadModule(vguiModule); return 0; } [/quote] вопрос, собственно говоря, что здесь не так ? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 2] Author : manJak Date : 11-10-2008 17:24 Собственно, а что, собственно говоря, не получается?) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 3] Author : fire64 Date : 11-10-2008 17:26 так vgui элементы же не создаются -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 4] Author : freeman85 Date : 11-10-2008 19:34 Где объявление класа? P.S.:Лучше юзай quote, вместо code. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 5] Author : Megalan Date : 11-10-2008 20:46 насколько я помню это вобще нельзя сделать (но возможно можно что-то замутить с кодом который тут нельзя обсуждать :) ), но если получится то запости код плз :) ps посмотри на файл src_main\engine\vgui_baseui_interface.cpp сам знаешь где)) а еще лучше запусти поиск внутри файлов в папке engine по строке vgui -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 6] Author : KLIMaka Date : 11-10-2008 23:17 Объявления все в хедерах лежат и никуда лезть за ними не нужно, это раз. Если б мне гдето достать filesystem_stdio.dll 017 версии, то может что-нибудь бы и получилось. А так я только 009 версии эту либу нашел, а поиски по гэцэфэшкам ничего не дали :(. Это два. Код написан под ер1 фреймворк, и если кто будет пытатся его компилить, то юзать нужно именно его, а не ОВ. Это три. Мэин луп там вообще закоменчен, что очень меня смущает. Ты это откуда-то скопипастил? Это четыре. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 7] Author : ***(Mr Roma)*** Date : 12-10-2008 06:09 >>Ты это откуда-то скопипастил? Это четыре. Из старого стыренного кода беты хл2, откуда же еще? ) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 8] Author : fire64 Date : 12-10-2008 07:59 [QUOTE][i]Оригинальное сообщение от KLIMaka [/i] [B]Объявления все в хедерах лежат и никуда лезть за ними не нужно, это раз. Если б мне гдето достать filesystem_stdio.dll 017 версии, то может что-нибудь бы и получилось. А так я только 009 версии эту либу нашел, а поиски по гэцэфэшкам ничего не дали :(. Это два. Код написан под ер1 фреймворк, и если кто будет пытатся его компилить, то юзать нужно именно его, а не ОВ. Это три. Мэин луп там вообще закоменчен, что очень меня смущает. Ты это откуда-то скопипастил? Это четыре. [/B][/QUOTE] я знаю, что это код под двиг первого эпизода // Run app frame loop // while (vgui::ivgui()->IsRunning()) // { // vgui::ivgui()->RunFrame(); // } я закомментировал потому что в результате происходит странный баг со 100% загрузкой процессора мне вот непонятно почему не работает загрузка scheme // Load the scheme if (!vgui::scheme()->LoadSchemeFromFile("Resource/TrackerScheme.res", "Tracker")) { return 1; } -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 9] Author : KLIMaka Date : 12-10-2008 10:06 100% загрузки - это не баг, а логичный процесс :) Ведь написано же рисовать, пока не закроют, вот он и рисует! Если б в цикле слип какой-нить поставить, то не все процессорное время бы отжирал. Потестить код загрузки схемы не могу, т.к. как я уже говорил, у меня либы нет нужной версии, а без нее у меня происходит вылет с веселой фразой: Fatal error: Could not initalize vgui2.dll причиной которой есть невозможность инициализации файловой системы :(. А компилить под бэтой желания нет... Так что дебаггер тебе в помощь! Благо все исходники есть, и пялится в дизассемблер не прийдется. Вообще странно, как схема не грузится, но пога с ошибкой не вылетает? Может синтаксис не соблюл в описании схемы? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 10] Author : fire64 Date : 12-10-2008 14:45 KLIMaka, падает с ошибкой // ... then the parent ((VPanel *)panel)->Client()->PerformApplySchemeSettings(); похоже именно из-за того что схема не загрузилась нашел другой код, попробую сейчас переделать, потом отпишусь я кажется разобрался в проблеме дело в том что я пытался вызвать прогой vgui::Panel vgui::Panel *panel = new vgui::Panel(NULL, "TopPanel"); а надо вызывать CStaticPanel в комментах написано // top level VGUI2 panel CStaticPanel *staticPanel = NULL; // setup base panel for the whole VGUI System // The root panel for everything ( NULL parent makes it a child of the embedded panel ) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 11] Author : KLIMaka Date : 12-10-2008 15:04 Ну если ты конкретно скажешь под какими исходниками и либами ты компилишь, и откуда взял Filesystem_stio.dll нормальный, то может я и смогу чем-нить помоч. А так - тыканье пальцем в небо. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 12] Author : fire64 Date : 12-10-2008 15:11 Ура получилось вызвать панель сегодня доработаю завтра выложу код и все объясню -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 13] Author : Megalan Date : 12-10-2008 15:22 ждем-с :) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 14] Author : fire64 Date : 12-10-2008 15:40 ситуация несколько усложнилась для того что бы вызывать что то кроме панели надо подключать vguimatsurface.dll, сейчас я этим займусь иначе ничего вообще не будет рендерится -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 15] Author : Megalan Date : 13-10-2008 14:04 есть успехи? --------- ну-с? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 16] Author : redbox Date : 13-10-2008 18:56 >замутить с кодом который тут нельзя обсуждать а где взять то что нельзя обсуждать? :) напишите в личку а? плиз... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [Post 17] Author : fire64 Date : 13-10-2008 20:05 [QUOTE][i]Оригинальное сообщение от Megalan [/i] [B]есть успехи? --------- ну-с? [/B][/QUOTE] сорри сегодня я занимался написанием одной проги на сокетах -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The messages has been download from Форумы на Наша-Life at https://forums.nashalife.ru at 22.09.2024 06:48:17