Commit Graph

376 Commits

Author SHA1 Message Date
Garux bb1931b745 * sort pk3s, so content of later (zzz) overrides earlier, like in radiant and engine
* fix strong performance penalty with large amount of files in pk3s
store pak file path once per pk3, not per each file inside
2021-08-13 03:20:07 +03:00
Garux ee92bdd801 minor tweaks 2021-07-27 22:16:05 +03:00
Garux 44907db895 Add KTX and ETC1 texture support by @Triang3l
https://github.com/xonotic/netradiant/pull/1
https://gitlab.com/xonotic/netradiant/-/issues/5

This pull request adds support for Khronos Textures to NetRadiant and Q3Map2, with OpenGL ES 2.0 formats, Ericsson Texture Compression version 1, and BGR/BGRA.

The patent-free Ericsson Texture Compression format will be used in the next version of Warsow to significantly reduce VRAM usage on mobile GPUs and the integrated GPU of Intel Broadwell.
2021-07-18 16:18:49 +03:00
Garux 4c0d049c02 prevent overflow in ostream_write( Decimal ) 2021-07-11 16:28:10 +03:00
Garux 4471302857 add and use BasicVector3.vec2() 2021-06-23 16:51:03 +03:00
Garux 7796044913 fix clang build error 2021-06-22 19:17:58 +03:00
Garux 089c100adc assimp: fix -Waddress-of-packed-member 2021-06-01 01:06:57 +03:00
Garux 6c00419653 fix spelling 2021-05-24 20:23:09 +03:00
Garux da98f5f9d9 add and use Entity::getClassName(), Entity::hasKeyValue()
do not return default value from getKeyValue()
2021-05-16 10:13:42 +03:00
Garux ed04f90497 * .ent: "direction" attribute presence enables -1/-2 angle support for EclassModel, GenericEntity
* .ent: "angles" attribute presence enables angles support for EclassModel
2021-05-15 23:38:41 +03:00
Garux 31e7829e2b * support negative misc_model scale 2021-05-11 19:05:54 +03:00
Garux c58749c72a apply custom assimp fixes 2021-05-07 14:49:50 +03:00
Garux 75c7c09903 * replace model loaders by assimp library (40+ formats)
* auto split big model meshes to <= maxSurfaceVerts chunks (avoids excess meta process for vertexlit ones)
2021-05-07 14:47:39 +03:00
Garux 31a79faee4 update assimp 2021-04-07 01:56:00 +03:00
Garux 70b12396aa build own assimp dll 2021-03-29 13:57:16 +03:00
Garux b533eca7ca add assimp library code 2021-03-29 02:06:58 +03:00
Garux 5008fa278f simplify TYPE_CONSTANT code 2021-03-25 21:59:31 +03:00
Garux edabdd157e shorten BernsteinPolynomial 2021-03-25 18:03:46 +03:00
Garux f8ab9a3b59 remove IntegralConstant hack 2021-03-25 05:50:17 +03:00
Garux dc5dea6d21 delete copy constructors and assignment operators explicitly 2021-03-24 15:48:29 +03:00
Garux 60652a335f remove empty .cpp of header libs 2021-03-24 01:20:05 +03:00
Garux 2222100316 indent classes, align by spaces 2021-03-24 00:25:15 +03:00
Thomas Debesse af82669bd3 do not fail on missing image or model plugin, they can be optional 2021-03-20 20:58:29 +03:00
Garux 9feec41e31 minor tweaks 2021-03-20 20:15:43 +03:00
Garux e200ffc762 minor tweaks 2021-03-20 02:30:11 +03:00
Garux ebd90382a4 * improve performance of deselecting big selections 2021-03-20 02:29:48 +03:00
Garux 812679236d * improve performance of big maps loading, undo/redo dramatically
determinant factor is amount of nodes in one container
2021-03-20 02:29:11 +03:00
Garux a5fb9388c2 fix double free on PICO model parsing error 2021-03-13 14:54:59 +03:00
Garux 4f5f5649dc consider ability of _pico_parse() to return empty string (on trailing space w/o linefeed in this case) 2021-03-13 11:32:45 +03:00
Garux 1144be0881 add BasicVector3 uniform constructor 2021-03-11 19:14:07 +03:00
Garux 902fb46938 random tweaks 2021-03-04 16:11:00 +03:00
Garux 9857bb955b more c++ math 2021-02-26 01:10:51 +03:00
Garux 4ce944444d rewrite q3map2 math in c++ 2021-02-25 19:41:43 +03:00
Garux 92b2487875 fix string warnings 2021-02-08 01:33:36 +03:00
Garux aa596f856d bytebool.h : only #include <stdbool.h> w/o __cplusplus 2021-02-07 07:47:33 +03:00
Garux b9d5f091e0 use fold expression, forwarding reference 2021-01-29 05:12:20 +03:00
Garux 623163ae9c remove unused markers 2021-01-28 02:12:15 +03:00
Garux 22dd3d1719 fix warning 2021-01-25 01:09:21 +03:00
Garux b949f70077 fix dds loading in 64 bit 2021-01-23 11:23:04 +03:00
Garux d734199601 manage path routines 2021-01-22 02:21:54 +03:00
Garux 8b204ac054 add and use class PathExtensionless 2021-01-21 15:15:07 +03:00
Garux 7fc079c658 merge duplicated path_ functions
handle backslashes, which is out of convention, but safer, as practically paths may contain them in many spots
2021-01-21 08:53:34 +03:00
Garux 3b39a5754d prevent filename overflow in model .skin loader
strip model extension during filename construction
add variadic template operator to StringOutputStream for inline strings creation
2021-01-20 11:59:16 +03:00
Garux 13524d59ef fix the build 2021-01-16 15:10:59 +03:00
Garux e62c6f4bb3 fix warnings 2021-01-03 06:24:58 +03:00
Garux 155d633ae9 fix [-Wdeprecated-copy] 2021-01-01 17:44:18 +03:00
Garux e42d17b71f fix color of obj without usemtl 2020-10-31 10:20:51 +03:00
Garux c50c044a31 fix volatile text rendering artifacts with MSAA
a0a47640b0
2020-10-29 22:00:17 +03:00
Garux 35309c8c6c fix Gdk-CRITICAL **: IA__gdk_window_get_window_type: assertion 'GDK_IS_WINDOW (window)' failed 2020-06-05 23:49:04 +03:00
Garux 3e7ee32ded make extension_equal() check case insensitive in Unix
allows most of file types with non lowercase extension
known issue: textures with non lowercase extension in loose folders are visible now, but they aren't loaded, because it leads to fopen( filename.lowercase_extension )
2020-06-05 21:11:26 +03:00
Garux 4fdb720123 fix Gtk-CRITICAL **: gtk_widget_grab_default: assertion 'gtk_widget_get_can_default (widget)' failed 2020-06-05 21:04:18 +03:00
Garux 613cf37150 ensure, that opengl font glyph height >= width to prevent overruns 2020-06-05 21:02:09 +03:00
Garux e357564ff8 remove more of deprecated Gtk stuff 2020-06-05 20:40:12 +03:00
Garux 95809d79f5 use GtkToolItem in toolbars 2020-05-27 08:18:22 +03:00
Garux 495e90e6a9 gtk_notebook_set_page -> gtk_notebook_set_current_page
gtk_container_children -> gtk_container_get_children
gtk_notebook_set_page -> gtk_notebook_set_current_page
gtk_widget_hide_all -> gtk_widget_hide
gtk_check_menu_item_set_state -> gtk_check_menu_item_set_active
gtk_radio_menu_item_group -> gtk_radio_menu_item_get_group
2020-05-23 22:54:26 +03:00
Garux 64e0c125e8 replace gtk_toolbar_append_space() 2020-05-22 01:16:02 +03:00
Garux 62603d25fb don't check equality to gboolean FALSE and TRUE 2020-05-21 16:27:31 +03:00
Garux 70cf8c4bdd gtk_widget_ref/gtk_widget_unref -> g_object_ref/g_object_unref 2020-05-21 16:27:28 +03:00
Garux e8998ab4a8 replace gtk_radio_button_group() 2020-05-21 16:27:26 +03:00
Garux 620fbffea7 only #include <gdk/gdk.h> <gdk/gdkwin32.h> <gdk/gdkx.h> <gdk/gdkkeysyms.h> 2020-05-21 16:27:19 +03:00
Garux 0140da6e72 only #include <gtk/gtk.h> 2020-05-21 16:27:17 +03:00
Garux 4f8e6e7ee5 fix the rest of errors with CFLAGS+="-DGSEAL_ENABLE" except accel_label->accel_string required hack 2020-05-21 16:27:14 +03:00
Garux 50e1af1a16 update GtkWidget allocation access method 2020-05-21 16:27:03 +03:00
Garux 065862627e update GtkAdjustment data access methods 2020-05-21 16:24:50 +03:00
Garux 12263f74d1 use gtk_widget_get_window() instead of widget->window 2020-05-21 16:24:40 +03:00
Garux ff33df7d45 replace GTK_WIDGET_VISIBLE -> gtk_widget_get_visible() 2020-05-19 23:46:54 +03:00
Garux 112f66fb06 remove deprecated GTK_WIDGET_SET_FLAGS GTK_WIDGET_UNSET_FLAGS use 2020-05-19 22:08:00 +03:00
Garux 0831e0966d Replace GDK_<keyname> with GDK_KEY_<keyname> 2020-05-19 21:15:11 +03:00
Garux a0a47640b0 * new rendering system for volatile text
(symbols rendered to atlas texture)
deliver position via glRasterPos + glGet GL_CURRENT_RASTER_POSITION to avoid adding calculations of screen coords in many spots
solves problem: pango 1.44 switch freetype->harfbuzz = bitmap fonts aren't available, in particular no gdk_gl_font_use_pango_font()
text is rendered from font bottom (was from baseline)(latter is wanted less often)
wgl bitmap<->pango sizes do not match, thus realign all text positions, increase default font size
make 2D axes labels, view type text, sizing info adaptive to font size
#24
fixes #42
2020-05-14 07:51:34 +03:00
Garux ef2fdfa127 make bestPlaneDirect, bestPlaneIndirect const 2020-05-05 19:49:01 +03:00
Garux 002f45d6d9 minor refactoring 2020-05-05 12:32:44 +03:00
Garux 0f0b251e70 remove unnecessary gdk_pixbuf_add_alpha call 2020-05-03 23:30:10 +03:00
Garux 7ae79b263d minor refactoring 2020-04-28 08:30:25 +03:00
Garux 06cd1e98ff * Model Browser: default bind '/'
m1 = assign model to selected entity nodes (shift + e to select nodes of group entities)
		m1x2 = insert "misc_model" with given model
		m1 drag = rotate model
		Preferences.Model Browser: list of * separated folderToLoad/depth values, e.g. *models/mapobjects/99*maps/1*; */99* loads root
2020-04-26 07:28:23 +03:00
Garux 7d59736ed6 print info on gdk_pixbuf_new_from_file() error 2020-04-14 19:46:38 +03:00
Garux fbbbd2e7d7 picomodel::ase: support standard empty bitmap name 'none' 2020-03-23 19:55:03 +03:00
Garux 7acdf92d50 * QE tool mouse move: highlight PlaneSelectables with alt/ctrl+alt, components in component modes
improve bestPlaneIndirect pickup (resolve, when corner is closest)
support 2d in class DragPlanes::bestPlaneIndirect
2020-03-19 00:00:28 +03:00
Garux 4b2f9d6080 * open/save dialogs: use current file path, name, focus it, if present
brushexport plugin: case insensitive extension check
2020-03-01 19:38:27 +03:00
Garux 53676dcf31 * csg tool: +faces face specification mode (only process selected faces)
* csg tool: also process unselected brushes with selected faces
2020-02-24 21:43:27 +03:00
Garux 1805e42582 make C code to compile with -std=c11 (though still many implicit function declarations) 2020-02-07 22:45:06 +03:00
Garux 4317ea2ab0 fix some l_net warnings 2020-02-03 23:14:27 +03:00
Garux eb70faddc8 use standard C bool type:
get rid of qfalse, qtrue aliases everywhere
replace qboolean in q3map2, q3data
redefine qboolean type in q2 tools, mbspc
2020-02-03 01:15:30 +03:00
Garux 49c602d793 prevent OOB read in string_equal_suffix, string_equal_suffix_nocase 2019-11-11 01:15:28 +03:00
Garux e849c95216 * build menu.customize: ctrl + c / ctrl + insert = copy, ctrl + v / shift + insert = paste build presets and command lines 2019-10-09 15:05:13 +03:00
Garux 4ebfc1dcac refactor template class LatchedValue use
make m_sGameFile LatchedValue
fix odd prompt to restart after game change via global preferences dialog + OK in local preferences
sort games list alphabetically by .game file name
2019-09-07 23:04:10 +03:00
Garux 1a18246a1f * suggest to automatically restart editor on change of preferences, which require this
* suggest to restart after selected game preference change
import of https://gitlab.com/xonotic/netradiant/merge_requests/141 e2f605b12f
2019-09-06 11:22:28 +03:00
Garux 6c9870f941 * workaround gamma bug in 2D views and texture browser with fresh nvidia drivers 2019-08-31 12:22:47 +03:00
Garux 070161fd13 shorten code 2019-07-25 19:23:13 +03:00
Garux 9c908392b9 fix warnings and error 2019-07-06 14:35:20 +03:00
Garux 018380da0c try extra hardcoded font names to make gtkglext bitmap font to work on linux
#24
2019-07-05 19:22:46 +03:00
Garux 2426697f65 UV Tool: add patch support
patch controls move modifiers: shift = only move along the axis with the biggest move, ctrl = snap hard to grid and povit lines
fix a couple of Patch::Calculate_AvgNormal() and Patch::NaturalTexture() problems
2019-06-10 15:17:57 +03:00
Garux aa99f4d254 * UV Tool (edit texture alignment of selected face) modifiers:
pivot control point and lines: ctrl = snap hard to face vertices and grid
		grid density controls: shift = change density of both axes synchronously, ctrl = power of two grid
		scale lines: shift = scale axes synchronously, ctrl = snap hard to vertices
		alt + m1 on grid = skew texture (is possible alright in BP and Valve220 map formats, not in AP); ctrl = snap hard to edges
		texture move: shift = only move along the axis with the biggest move, ctrl = snap grid lines hard to vertices and pivot
		rotate: shift = rotate with step of 15 degrees, ctrl = snap hard to edges
2019-05-19 10:30:44 +03:00
Garux 3ce07bb310 change points order in plane3_for_points( const BasicVector3<Element>& p0, const BasicVector3<Element>& p1, const BasicVector3<Element>& p2 )
to be consistent over the related code
to omit points swap there and there
2019-05-01 12:38:58 +03:00
Garux 71c63fbdc6 * fix alt + m1 indirect faces picking, when object is partially or fully out of camera view
refactor math functions
2019-04-28 20:54:29 +03:00
Garux 57865138b9 g_free after g_object_get 2019-04-23 18:22:24 +03:00
Garux 8d1015c7c8 make RenderTextLabel OpenGLRenderable
render CamDrawSize in uniform way
2019-04-23 14:02:13 +03:00
Garux 58eb6e61d2 simplify RENDER_TEXT logic
class RenderTextLabel for text rendering
* consider texture alpha channel during rendering of shaders with qer_trans
2019-04-23 11:31:52 +03:00
Garux f45f759b43 * bigger components handles
* render occluded brush vertices differently
disable NV_DRIVER_BUG workaround
remove RenderableWireframe::glColorPointer call
2019-04-16 00:07:50 +03:00
Garux eff4d4224c use hardcoded opengl font names in windows only 2019-04-12 20:54:23 +03:00
Garux 11724e3d58 handle "font for OpenGL rendering was not created" case better: don't crash, don't render bs, assert 2019-04-07 17:49:23 +03:00