Commit Graph

354 Commits

Author SHA1 Message Date
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
Garux 213b680a3c * region XY: only deselect excluded objects for convenience 2019-03-24 23:05:14 +03:00
Garux dabcad5088 * Shortcuts edit: fix "already assigned" check
rebase shortcuts logic on 'key is lower, modifiers are allowed in struct Accelerator' idea
2019-03-08 19:31:51 +03:00
Garux af720a7f32 remove convhull_3d.h 2019-02-28 00:00:54 +03:00
Garux 1628abfd0f calm down -Wdelete-non-virtual-dtor warnings
remove -Wno-non-virtual-dtor from makefile (what does it do anyway? -Wdelete-non-virtual-dtor is part of -Wall)
2019-02-26 19:08:47 +03:00
Garux 812a8b6001 q3map2: follow ODR
enables compilation with -fno-common
2019-02-23 00:09:42 +03:00
Garux 9f80983975 prevent buffer underflow in Vector4ClipPolygon 2019-02-22 23:55:20 +03:00
Garux 7c2d05f399 fix 'might be considered always true' warning 2019-02-22 23:53:39 +03:00
Garux 07d3008b96 calm down fall through warnings 2019-02-22 23:50:10 +03:00
Garux ff4260c75a * picomodel: fix md2 loader
duplicates management algorithm isn't as quick, as in old code, but quick nuff + working
2019-02-22 23:29:04 +03:00
Garux b7bfa11b55 * entity inspector::smartEdit: display real key names
* entity inspector::smartEdit: show tooltips with extended names and descriptions for keys and flags
2019-01-11 21:25:31 +03:00
Garux d19b3c9a28 * picomodel::obj: support polygons > quads 2019-01-10 16:29:38 +03:00
Garux 034f06f18d * brushexport plugin: write Kd (diffuse color) and map_Kd (diffuse map) data to .mtl
* brushexport plugin fix: invert Y during YZ swap; invert V of UV coords (correct texturing)
	* brushexport plugin: default to 'Don't collapse' option
q3map2:	* obj export: save in popular 'Y = Up, -Z = Forward' format
	* picomodel::obj: load as popular 'Y = Up, -Z = Forward' format
	* picomodel::obj: fix support of back references in faces
2019-01-10 00:44:27 +03:00
Garux 0a91aaef32 fix compilation in Ubuntu 2018-12-16 14:18:46 +03:00
Garux 9eff327c70 refactor brush transform evaluation code to reduce amount of unneeded evaluations to 0
improvable: don't evaluateBRep on shader changed, perhaps more
fix: brush vertex manip: no vertexModeFree() after identity transform (mouse forth and back / rotate dialog 0 / insertion w/o move) = selects vertices on undo
fix: brush vertex manip: tex vertex lock: broken for 220
use brush::vertexmode code to delete selected brush components
2018-12-13 19:13:26 +03:00
Garux 435c41b73b * new vertex editing mode, preserving non modified vertices (=adding/removing faces automatically)
with debug prints
2018-12-10 17:50:40 +03:00
Garux 6b8b568fd2 C++11 candy 2018-12-08 16:44:08 +03:00
Garux 389030e05d fix cached brush face centroid tracking 2018-12-05 15:19:12 +03:00
Garux 70167de13b switch CSG_build_hull to https://github.com/akuukka/quickhull lib, feels robust enough
use -std=c++11
2018-12-01 15:43:26 +03:00
Neon_Knight e378a87134 It fixes compilation errors in some systems. 2018-11-14 20:59:37 -03:00
Zack Middleton 9aa9620d4d Fix over allocating vertexes for OBJ models with multiple surfaces
Loading Wavefront OBJ models in picomodel (used by radiant and q3map2)
did not reset the surface vertex index when starting a new surface. This
caused there to be unused vertexes, equal to the number of vertexes in
all previous surfaces, at the beginning of each surface. Exponential OBJ
vertex memory usage as number of surfaces increases. It did not affect
displaying or processing the surface faces.
2018-10-30 20:27:44 -05:00
Garux 736f89026f use convhull_3d for quicker hull calculation 2018-10-22 18:36:38 +03:00
Garux 1191f54ef4 add https://github.com/leomccormack/convhull_3d/blob/master/convhull_3d.h 2018-10-22 18:33:40 +03:00