From f61e0dcb678acaaf6457203e79152fb31605a1da Mon Sep 17 00:00:00 2001 From: Garux Date: Mon, 18 Jul 2022 18:28:56 +0300 Subject: [PATCH] * view->filter->sky: Q3 shader based skies (skyParms keyword) --- include/ifilter.h | 1 + include/ishaders.h | 1 + plugins/shaders/shaders.cpp | 2 ++ radiant/brushmanip.cpp | 4 ++++ radiant/filterbar.cpp | 2 ++ radiant/filters.cpp | 2 ++ setup/data/tools/bitmaps/f-sky.png | Bin 0 -> 586 bytes 7 files changed, 12 insertions(+) create mode 100644 setup/data/tools/bitmaps/f-sky.png diff --git a/include/ifilter.h b/include/ifilter.h index 4fad9c4e..35071076 100644 --- a/include/ifilter.h +++ b/include/ifilter.h @@ -48,6 +48,7 @@ enum EXCLUDE_DECALS = 0x00100000, EXCLUDE_FUNC_GROUPS = 0x00200000, EXCLUDE_POINT_ENT = 0x00400000, + EXCLUDE_SKY = 0x00800000, }; class Filter diff --git a/include/ishaders.h b/include/ishaders.h index 1a0cd252..7ab5ac43 100644 --- a/include/ishaders.h +++ b/include/ishaders.h @@ -37,6 +37,7 @@ enum QER_AREAPORTAL = 1 << 8, QER_CLIP = 1 << 9, QER_BOTCLIP = 1 << 10, + QER_SKY = 1 << 11, }; struct qtexture_t; diff --git a/plugins/shaders/shaders.cpp b/plugins/shaders/shaders.cpp index c1f00bc1..b9ddc65a 100644 --- a/plugins/shaders/shaders.cpp +++ b/plugins/shaders/shaders.cpp @@ -1245,6 +1245,8 @@ bool ShaderTemplate::parseQuake3( Tokeniser& tokeniser ){ if( !string_equal( sky, "-" ) ){ m_skyBox = sky; } + + m_nFlags |= QER_SKY; } else if ( string_equal_nocase( token, "cull" ) ) { const char* cull = tokeniser.getToken(); diff --git a/radiant/brushmanip.cpp b/radiant/brushmanip.cpp index 48d26255..29a59ea3 100644 --- a/radiant/brushmanip.cpp +++ b/radiant/brushmanip.cpp @@ -1196,6 +1196,9 @@ filter_brush_all_faces g_filter_brush_detail( &g_filter_face_detail ); filter_face_shader_prefix g_filter_face_decals( "textures/decals/" ); filter_brush_any_face g_filter_brush_decals( &g_filter_face_decals ); +filter_face_flags g_filter_face_sky( QER_SKY ); +filter_brush_any_face g_filter_brush_sky( &g_filter_face_sky ); + void BrushFilters_construct(){ add_brush_filter( g_filter_brush_clip, EXCLUDE_CLIP ); @@ -1227,6 +1230,7 @@ void BrushFilters_construct(){ add_brush_filter( g_filter_brush_liquids_q1, EXCLUDE_LIQUIDS ); add_brush_filter( g_filter_brush_lightgrid, EXCLUDE_LIGHTGRID ); add_brush_filter( g_filter_brush_decals, EXCLUDE_DECALS ); + add_brush_filter( g_filter_brush_sky, EXCLUDE_SKY ); } #if 0 diff --git a/radiant/filterbar.cpp b/radiant/filterbar.cpp index 86f5321c..79a3d855 100644 --- a/radiant/filterbar.cpp +++ b/radiant/filterbar.cpp @@ -152,6 +152,8 @@ GtkToolbar* create_filter_toolbar(){ button = toolbar_append_toggle_button( toolbar, "HintsSkips (CTRL + H)\nRightClick: toggle tex\n\thint\n\thintLocal\n\thintSkip", "f-hint.png", "FilterHintsSkips" ); g_commonFuncs.emplace_back( button, std::vector{ "hint", "hintlocal", "hintskip" } ); + button = toolbar_append_toggle_button( toolbar, "Sky", "f-sky.png", "FilterSky" ); + //toolbar_append_toggle_button( toolbar, "Paths (ALT + 8)", "texture_lock.png", "FilterPaths" ); toolbar_append_space( toolbar ); toolbar_append_toggle_button( toolbar, "Entities (ALT + 2)", "f-entities.png", "FilterEntities" ); diff --git a/radiant/filters.cpp b/radiant/filters.cpp index 1473d838..b9bbf6b4 100644 --- a/radiant/filters.cpp +++ b/radiant/filters.cpp @@ -207,6 +207,7 @@ void Filters_constructMenu( GtkMenu* menu_in_menu ){ } create_check_menu_item_with_mnemonic( menu_in_menu, "FuncGroups", "FilterFuncGroups" ); create_check_menu_item_with_mnemonic( menu_in_menu, "Point Entities", "FilterPointEntities" ); + create_check_menu_item_with_mnemonic( menu_in_menu, "Sky", "FilterSky" ); // filter manipulation menu_separator( menu_in_menu ); create_menu_item_with_mnemonic( menu_in_menu, "Invert filters", "InvertFilters" ); @@ -256,6 +257,7 @@ void ConstructFilters(){ } add_filter_command( EXCLUDE_FUNC_GROUPS, "FilterFuncGroups", accelerator_null() ); add_filter_command( EXCLUDE_POINT_ENT, "FilterPointEntities", accelerator_null() ); + add_filter_command( EXCLUDE_SKY, "FilterSky", accelerator_null() ); PerformFiltering(); } diff --git a/setup/data/tools/bitmaps/f-sky.png b/setup/data/tools/bitmaps/f-sky.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6a9970e3552d9a0c040d344c622a9699fd4203 GIT binary patch literal 586 zcmV-Q0=4~#P)&;77BwU2mrP5hg znS|fJ{XTES^YSw=d1gO`20aZ17dCyZdj&>Xj|5;6-@dUiT(}{}@ckznKclp1RK`4S zZ-+!ZQ>K3m0phPrKc0KL;~WD60|U!{1_q_y3}0{Ya{Xk5Xj^W}%eFjByIfgGh z-&nIIdrNT%a4;}1Ffe!(n~6O<|1yK&7Q<`?1_lO}%?u427#J8B3?3yv|Noys>dku| zhAYpE7;28D;0$?AK@QOf9oD`#swg>~CC>K@( zbX?^5e|-AoC;7qhAq!0K7mMhB%@Cdceic@XSal%*7B&`!z*=jGCs*H;!xNH#7*DEq zvAHlI&B%aPgp(g`z@K0L-+cY>lW5I<|NLWk`{e6Oco@jOF*yD3>N{^G6G<^1K@Pl{ zU*7w`u&iwVod?%mC!+Y*lc9l6R+T@Og`HU!m*)QrjQ{`s`gig5trxS`Gqk@Y+R3;8 Y0P4-AsX+51ZvX%Q07*qoM6N<$f`aY`C;$Ke literal 0 HcmV?d00001