(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
#24fixes#42
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
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
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
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
* 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
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.
name w/o path: assume textures are in the folder, where model file is
absolute path or with ..: try to cut at "/models/" or "/textures/" (as if leading to game folders); do previous case, if not
strip extensions and turn slashes to forward ones anytime
* picomodel::obj: fix diffuse map paths loading from .mtl
draw condition relies on entity.getKeyValue, which also provides default values; thus removed default "0" for all group entities in .def loader
mind to add entity.getOnlySpecifiedKeyValue func or perform by visitor?
* fix: region() functions work for entities, having model, which is instantiated multiple times in a scene
* warn on Map_RegionBrush with none selected
* fix: 'region set brush' is deleting ultimateselected only (is using one to get bounds)
* deselect components on any region() function: could be texturized or edited implicitly
* allow 'region set selection' in components mode
* Map_RegionXY: deselect anything (could leave stuff selected + invisible)
* brush format is preference for [maptypes, brushtypes]: [mapq1, quake], [mapq2, quake2], [mapq3, quake3]:
preferences->Brush->Brush type: Axial projection, Brush primitives, Valve 220
* autodetect brush type on map opening
* brush face surfaceflags are optional on loading for flexibility
* 'Snap planes to integer grid' option is always off by default
misc...
* entity inspector, entity list->'autofocus on selection' buttons: also do FocusAllViews() on clicking them
* focus on preferences treeview on 2nd+ call to make text search to work
* fixed WindowPositionTracker globally: minus many particular hacks, plus correct wnds positioning in Floating viewports layout
* fixed ToggleShown functionality: shown/hidden wnds states are saved and loaded correctly in Floating viewports layout
* also save/load XY and Cam viewports visibility states
* new preferences->layout icons
* fix: stop chaseMouseMotion on mouse button release
misc...
* selection system: fixes of: selecting point behind point (not perfectly precise distance)
selecting occluded objects and faces via direct and indirect hits
* select models from back in 2d
binds...
* shift + m3: apply texture name and alignment to selected primitives and faces (m3 was inconsistent + often required quite deep planning)
* ctrl + shift + m3: also project tex from face to selection
misc...
* lazy cursor updates in clipper mode
* update cursor immediately on clipper mode toggles
* fixes and optimizations of entity names rendering; for instance: don't prerender textures for unneeded names
FBO overlay fixes
misc...
* render scene to FBO to get following options:
preferences->camera->MSAA (def = 8 samples)
preferences->orthographic->MSAA (def = 8 samples)
coloured camera POV icon w/o rerendering the scene
coloured rectangular selector box w/o rerendering the scene
* fallback to glCopyTexImage2D (NPoT), if FBO isn't available
misc...
* place created simple patch mesh not in middle of bbox, but on edge to make result more usable
* prefs-interface-layout-single scrollable toolbar
misc...
* changed surface inspector behavior from 'set whole texture projection' to 'set modified value' (makes sense for multiple surfaces selected)
* BP: surface inspector and Tex* binds scale texture by its axes, not world axes
* BP: fix rotation of tex projection with scale S != scale T
* BP: fix ruining nonregular tex projections by surface inspector (for example after fit/seamless/arbitrary projection)
* jump over tex projection scale = 0 case, while modifying one (AP and BP)
misc...
* restrict unwanted angle(s) keys commits on moving generic, eclassmodel, miscmodel entities
* reverted angle(s), origin, scale entity keys save format from %f to %g
* fix uniform rotation operations for generic entities with angles key
* use more precise meth for rotating point entities with only angle rotated
* snap tiny inaccuracies in angle(s) and origin point entities keys
* workaround: don't discard empty group ents, having origin key
* entity class convertion: prevent converting worldspawn; prevent converting point entity to empty group
menus...
* view->show->Entity boxes (always show bbox for ents with model)
misc...
FBO support
* preferences->display->entities->Names Display Ratio (2D): hide names, if view_size/bbox_size > value; def = 64
menus...
* Shortcuts item moved from Help to Edit
misc...
* fix: q1 mdl reader out of bounds reading crash
* fix: q1 mdl loading of MDL_FRAME_GROUP case
* fix: rightclick main wnd border, release in texbro glwidget == crash (unfreezepointer)
* texbro: search in currently shown textures
* ask for saving nonsaved map on project settings change
* func_detail to nongame group ents counter
* deiconify main wnd, unmaximize maximized view on app closing to save correct layout data
* close preferences dialog on ESC
* Enter = Ok in global and path settings dialogs
* print renderer stats in XY views too
* global 'show renderer stats' option, def = off
* ~10x faster opengl text rendering
binds...
* m1 + shift drag: snapped modes of manipulators:
scale free: scale two axes synchronously
* m2 in entities creation menu: change classname; ctrl + m2: change classname, don't close menu
* ctrl + m1 in entities creation menu: create entity, don't close menu (+offset every next entity by 8u or gridsize, if > 8)
misc...
* fix: laggy selectors, manipulators in mlook mode
* scale free->snapped mode: constrain to two axes, most perpendicular to view direction (i.e. works for two axes in 3d too)
* scale free->snapped mode: use min move delta for scale (was max = hard to scale down); fix ZY projection case
* fix: pointfile was considered as shown, when trying to load missing one
* entity inspector->EntityProperties treeview: Tab keypress = focus Key field
* 2x2 layout: allow gtk to handle separators positions; fixes: unmaximize wnd, maximize = horizontal separators > center
fixes: unmaximize wnd = not updated views glwidget positions on some systems
* fix: paint selector, selecting occluded faces
* camera->field of view option
* wider Texture Gamma preference range
* wad games->texbro treeview: do not group names, using underscore; fixes crash on loading parent; fixes mess if path contains underscore
* fix: do not quit freelook on autosaving
* entity creation menu has ability to be 'tearoff'
* wad games: fix TextureBrowser_ShowDirectory crash on loading common dir (can cfg to load .wad), on loading containing dir (do nothing)
* wad games: fix crash on selecting a shader (not a plain texture) in tex bro
* wad games: more reliable filterbar texturing defaults
* shader for 'caulk new brushes' and 'clipper uses caulk' options is optional via 'shader_caulk' option in .game
binds...
* Tab in freelook: smooth turn around selected, while focusing on one
misc...
* activate key_press_handler before special_key_press_handler to allow CameraFree* commands, bound to special (gtk: !accelerator_is_valid) keys
* update workzone on partial deselecting too (was updating only on adding to selection)
disable fastnormalize for light: was increasing dirt from arealights, lighting with acute angle
Radiant:
binds...
* QE tool: alt + m1 drag in primitives mode:
click face = clicked faces shear
* m3 in texbro: select texture w/o applying to selection
* `: XYFocusOnSelected
* ctrl + shift + e: Select Connected Entities
misc...
* search in shortcuts list
* edit shortcuts on m1 dbl click
* edit shortcuts fix: could highlight a few rows for editing
* texbro: toggle off hideUnused on loading a tag
* fix of: undo something, select tex in texbro, no redo available
* epsilon in resize brush selector to prevent perpendicular faces pickup
* clone group entity primitives to separate entity on cloneSelectedMakeUnique
* Focus on Selected option in Entity List (focus cam and center xy)
* entity inspector: connected entities walker (select target / targeting / both)(focus)
* fix: parsing of /* */ comments, having * or / inside
Radiant:
misc...
encapsulate RETURN_FALSE_IF_FAIL macros with do while 0: minus warnings
* button to call color selector from ents inspector color entry
* explanatory text on initial engine path configuration
* don't show Global preferences by default, except first start
* activate {xyview, camera, texbro glwidget} on mouse button press and scroll, so {texbro treeview and console} hotkeys do not override global ones
* activate windows, containing xyview, camera, texbro on mouse scroll
* fix: autoapplying trigger texture on entity creation is undoable
* fix: texbro m1/2 x2 work, when some tag is loaded
* bold key and spawnflags names in entity inspector entity description
* fix: +CameraFreeMove* command, +shift, -CameraFreeMove*, -shift = still moving (reason: caps letter)
binds...
* m1 + shift drag: snapped modes of manipulators:
freedrag: constrain to axis with biggest move amount
rotate axis: snap to angles, multiple of 15'
scale axis: scale all axes synchronously
scale free: scale axes with non zero drag synchronously (i.e. two visible ones in projection views)
misc...
* fix: CameraFreeMoveUp, CameraFreeMoveDown shortcuts are editable
* prism, cone prefabs: increased precision
* fix: out of pivot rotating is active from start, no additional magic is needed for that
* fix: could lock (but not set) transform origin in non-pivoted mode
* arbitrary rotation dialog allows decimals
* fix: grid rendering with ToggleGridSnap off
* fix of: scale tool scale, locked to 1 for things w/o bbox with bigger grid (e.g. single misc_model)
(snapped drag start was = 0, scale func depends on initial click point: closer to center = more extreme scaling)
* fix: make detail / structural are undoable
* default autosave period: 5 -> 15 minutes
* texBro option: hide nonShaders in common folder; def = yes; are shown, if are in use
* view->show: toggle crosshair, size, grid are check menu items
* view->show: +Show Light Radiuses toggle
* view->show->show stats makes effect immediately
* view->show fix: check menu items are sensitive to changing options via shortcuts
misc...
* option to disable main toolbar
* removed bobtoolz caulk selection button; filterbar one does the job better
* filterbar: + region set selected button; rightclick = region off
* filterbar: + hide selected button; rightclick = show hidden
* SelectionSystem option: prefer point entities in 2D views (def = yes)
* filterbar: indicate region, hide states by buttons states
* fix: region compiles (run build with region enabled = compile regioned part only)
* solid selection boxes by default (m_bNoStipple)
* always use stipple for stuff behind stuff in 3d (was dependent on m_bNoStipple)
* del unused ChooseSmallGridMajorColor ChooseSmallGridMinorColor preferences pipeline
* fix: Active View Name and Outline... Clipper... colors saving
* fix: ChooseCameraSelectedBrushColor changes the color (requires restart)
* fix: ChooseSelectedBrushColor preference saving (requires restart)
* fix rubberband selector appearence in 2D with 'show window outline' option enabled
* multiple projections layouts: activate a projection on zoom
* multiple projections layouts: added wnds updates to correctly indicate active projection (via wnd outline and projection name)
* draw projection name is independent from show coordinates option
* multiple projections layouts: greyscale axes in inactive views
* 'show coordinates' is disabled by default
* quick (hacky) method to render things, indicating viewport being active or not (axes, view name, wnd outline)
* code fixes
* packer: !FAIL! msg for missing ingame resources, ~fail for the rest
* bumped stack size to 4Mb to fix crash for huge skies, using old shaders with fairly useless q3map_surfacelight + q3map_lightsubdivide < 999 combo
Radiant:
binds...
* F5: run first in the list or recently invoked build option
* F11: fullscreen
misc...
* opening *.map, sent via cmd line: enabled for non win32 too
* fix: textures find/replace wnd better default pos, size
* fix: crash in CSG::Subtract
* fix crash: main wnd maximized + 'start on primary monitor' off + monitors > 1
* correct save/restore of main wnd pos/size and maximized/fullscreened states
* scale widgets consistently along with main wnd, while using regular layout
* fix crash with nonpthreads xmllib + multithreading + output to system console
* number of code fixes
Radiant:
misc...
* fix: clone group ent / map import / saving map as : group ents name labels at 0,0,0;
* number of code fixes
misc...
* fix: deselecting particular primitives, invert selection work for expanded group entity selection (these are deselecting parent node)
* do not render entities selection in components mode; fixes 'invisible components for expanded group entity selection'
misc...
* fix: select inside and touching: ignored ANY filters and hiding, and region
* fix: M3 tex paint/grab ignored _hidden_ models
* fix: M3 tex paint/grab ignored group ent (world, triggers, et cetera), model filters
* fix: shift+a by tex: ignored group ent (world, triggers, et cetera) filters
* fix: tex find/replace: ignored any filters, regioning & hiding
* fix: shift+a by classname: ignored filters, hiding, region
* fix: floor walker ignored group ent filters
* fix: csg subtract ignored group ent filters
* fix: invert selection: ignored group ent filters
* fix: tex find/replace: 'select by shader' mode for patches (was replacing with notex instead)
* fix: select inside and touching: were selecting group ents, as single unit (=sensitive to parent node and its bbox)
* fix: csg merge two group ents = empty group ent
* fix: csg subtract group ent completely = empty group ent
* fix: hollow group ent: could produce empty group ent
* func_groups are filtered by world filter only, not entities one
* new func_group filter, filterBar button; Rightclick = create func_group
misc...
* made shaderplug msg to look not like error (but barely noticeable)
* removed Texdef_FitTexture copypasted code
* ctrl+shift+mouse strafe mode: moving mouse forward moves camera forward, back - back
* add map to recent ones on SaveMap (instead of doing that in 'open by cmd line': spoils the list)
* fix: spin buttons alignment in patch inspector
* fix: patch inspector window pos save/restore during run time
* removed console, texbro buttons in regular layout
* ent inspector: saving window splits pos in non regular layouts
* ent inspector: saving lower split pos aswell
* ent inspector: fix of: minimizing part behind middle to 0
* saving find/replace wnd pos; bringing ontop, if is (present + called)
* moved 'find unique name for' output to _DEBUG
* fix of 'GLib-CRITICAL **: Source ID was not found when attempting to remove it' in buid monitor timer
* fix: build menu customizing: command field is reachable right after creating new entry
misc...
* fix: texbro m2 drag in 2x2 layout
* fix: crash in (texbro + freezePointer)
* fix: all sorts of problems with freezePointer drags near widget borders
misc...
* local gtk2 themes support; cfgs are .gtkrc-2.0.radiant, .gtkrc-2.0.win; +~100 themes included;
MS-Windows theme is one, inheriting current appearence on Windows
* GTK2 theme & font selector (Misc->Colors->Gtk theme...) (need restart after pair of naughty engines tho)
* openGL implementaion of rubberband selector (w/o rerendering whole scene) (fixes visual issues with Aero)
binds...
* douplicated basic shortcuts: arrows - camera freemove, ESC - deSelect, backSpace - delete
menus...
* modify+: snap to grid (ctrl+g)
misc...
* fixed warning on import (q3map2_type not found)
* patch thicken
* removed douplicate accelerators registering
* trigger_* entities get textures/common/trigger tex on creation
( unless different is set in .game file via shader_trigger key )
* opening *.map, sent via cmd line (can assign *.map files in system to be opened with radiant)
* -aero cmd line key to enable aero transparency
* opening maps with bad tex defs (.#QNAN, .#IND, .#INF)
(happens sometimes after rotating & often scaling with tex lock (in BP mode)); error->warning