Back to Tomaytile
#2

Workflow Polish

It’s been a month since the last entry. I’ve mostly been polishing the editor’s everyday workflow, things like UV editing, triangulation, and camera controls. Also fixed some mouse responsiveness issues.

The Editor

Vertex snap mode lets you drag a vertex and snap it onto another with visual feedback. In connected movement mode the vertices auto-merge when they land on top of each other, so two corners can be collapsed into one without an extra step.

A few smaller fixes too: autosave was broken and kept filling the recent files dropdown with .autosaves of the same project, and ImGui windows were sometimes displaying over the custom header bar.

UV Mapping

The UV editor got most of the workflow polish this round. Multi-face drag grabs several faces in the UV map and repositions them at once. Box-select draws a rectangle to pick up multiple UV points. Multi-point drag moves all selected UV points together. Copy and paste of UV layouts works between faces, and viewport-hover copy/paste copies the UV from the face the cursor is over without needing to click into the UV tab first.

Rapid cursor movement no longer lags during UV drag operations; the render path was waking the screen up too often during high-rate input.

Texture Mesh Creator

The Texture Mesh Creator now uses constrained Delaunay triangulation with interior Steiner points to produce cleaner triangle layouts inside the polygon you draw. Re-editing an existing texture mesh is supported, so a polygon can be revised after creation. Point-level undo and redo also work during polygon definition.

Texture Mesh Creator with constrained Delaunay triangulation

Camera Controls

The biggest workflow change this round. Middle mouse drag in edit mode orbits the camera around whatever the cursor crosshair is over. Shift+MMB pans, with the focal point following the cursor. The scroll wheel zooms toward the crosshair, or toward the orbit pivot if a drag is in progress. Plain MMB-click still triggers the tileset eyedropper. Modifier state is locked at the start of the drag so releasing Shift mid-drag does not flip the gesture. A yellow indicator shows where the camera is rotating around.

Clicking back into the main viewport when the window was unfocused used to fail. The borderless window’s resize border zone had been hijacking activation clicks at the top and bottom edges; now any client-area click activates the window cleanly.

Performance

Mouse look at high polling rates would drop dramatically in both fly and edit mode, but only when applications like Discord or Steam were running with their in-game overlays enabled. The investigation took longer than expected. The cause turned out to be third-party global window-message hooks adding latency to every dispatched message. The fix reduces the volume of messages the window receives so the hooks fire less often. Smooth motion in both modes regardless of which overlays are running.