Commit Graph

179 Commits

Author SHA1 Message Date
48072d7b4a pull out Photo into its own file 2023-08-03 23:41:14 -04:00
2a28f94dc1 remove SetActivePhoto() functions 2023-08-03 23:33:48 -04:00
086088fb4c move the white border of crop rectangle out by 1 2023-08-03 23:29:27 -04:00
ff938693ff draw crop rectangle when viewing a cropped photo 2023-08-03 23:21:10 -04:00
08862f52af draw newly-refactored cropbox on screen etc 2023-08-03 21:33:28 -04:00
8d4bf9c69f bug fixes and performance improvements 2023-08-03 20:03:46 -04:00
6df7f1e53b rearrange statusbar a bit 2023-08-03 19:38:53 -04:00
4514509c62 pull out Shader into its own file 2023-08-03 19:32:53 -04:00
6076abe9d1 return ToolState and start switching tools 2023-08-03 18:38:21 -04:00
7db0ec7e62 refactor a bunch of stuff into a CropTool 2023-08-03 18:14:19 -04:00
6d07a533d7 rearrange & shorten some statusbar items 2023-08-02 22:29:04 -04:00
473fac7a6f cropping works! janky af for now, but it works 2023-08-02 01:05:10 -04:00
e5c1b01806 more crop progress 2023-08-01 23:14:00 -04:00
190dda46d4 more cropbox work 2023-08-01 22:24:25 -04:00
1ad8b06be8 add ability to draw a simple crop box 2023-08-01 14:12:52 -04:00
9cdef230f4 add Rating to EXIF as well just in case that matters somehow 2023-08-01 11:30:06 -04:00
58a19d061d save rating in XMP data. also change default window size 2023-07-31 20:50:53 -04:00
9e03d8f2c5 change Export keybinding to Alt-P 2023-07-31 17:01:08 -04:00
c68f42915c output to the "prod" photos location. also make sure there's at least one thumbnail in the ribbon 2023-07-31 16:44:01 -04:00
ac93b55609 change Export to shift-P 2023-07-31 00:58:21 -04:00
c74d5c5385 add some things to exif output 2023-07-28 17:54:00 -04:00
831637338c ExportPhotos: load images async'ly 2023-07-28 16:32:54 -04:00
cf354937e7 async'ify ExportPhotos 2023-07-28 16:28:18 -04:00
a326c8432e bump JPEG quality from 98->100 and add a comment 2023-07-28 16:00:08 -04:00
073c9745e9 basic image export! 2023-07-28 15:52:36 -04:00
fe02e13a11 keep around more loaded images 2023-07-28 14:36:02 -04:00
33f6ee739e introduce loadingImages & add a lock around image load/unload state 2023-07-28 13:07:47 -04:00
ad598e68a5 rm spurious "async" keyword 2023-07-28 12:27:53 -04:00
a36bad5c1f add fixme re exif times 2023-07-28 12:21:38 -04:00
3a0060fc9d fix memory leak (and crash under debugging) by not trying to unload textures on a non-GL thread 2023-07-28 12:19:15 -04:00
75b80507bd handle "filter result size = 0" without crashing 2023-07-28 11:52:07 -04:00
1bedac471d show "photo # / total photos" in status bar 2023-07-27 01:18:17 -04:00
0b6de0840f Move photoIndex to wherever the previously active photo was 2023-07-26 21:56:27 -04:00
ca5b2d94f5 unload Photos by least-recently-used 2023-07-26 21:29:26 -04:00
dc909a80f4 cache images by string (filename) rather than index; disable unloading for now 2023-07-26 18:16:51 -04:00
3c1e2c8dad start work on filtering by rating 2023-07-26 17:29:59 -04:00
067b54a77d remove keyboard autorepeat and change IsKeyDown -> IsKeyPressed 2023-07-26 16:57:32 -04:00
42ea309794 add keybindings for rating 2023-07-26 15:41:53 -04:00
247d6ac6f2 click on stars to set rating 2023-07-26 15:20:20 -04:00
8ca4ff7cad put stars at the center bottom and make f/ stringification simpler 2023-07-26 15:09:19 -04:00
e98b19d87b make DrawTexture(texture, x, y) function 2023-07-26 13:49:48 -04:00
7ce97438ae add stars to the thumbnail view 2023-07-26 13:10:19 -04:00
77b0f2b191 display rating info in upper left 2023-07-26 12:23:58 -04:00
7b8c64d8be little changes to thumbnails / image load/unload constants 2023-07-26 11:38:04 -04:00
f83d7f13aa FpsCounter frameTimes size: 60 -> 30 2023-07-26 11:25:14 -04:00
a92d089c5b add poadding to top of statusbar 2023-07-26 11:24:56 -04:00
3012f67c9f use a more universally-available japanese font 2023-07-26 11:14:23 -04:00
a67912e1ce make icon size a variable 2023-07-26 11:11:06 -04:00
c7ff5ee15d render app icon 2023-07-26 10:00:46 -04:00
07d25742fb try IsEventDriven = true 2023-07-25 22:49:09 -04:00
57e6968f3c add fps counter 2023-07-25 22:19:18 -04:00
32cb03ab15 Photo.Unload() is now async 2023-07-25 22:00:43 -04:00
b0fd20cd89 add PageUp/PageDown/Home/End keybindings for going through photos 2023-07-25 21:44:22 -04:00
27a4a64ccb load and unload images dynamically 2023-07-25 21:24:20 -04:00
fb26de5fa1 show date in status bar 2023-07-25 20:35:12 -04:00
3b85c5d21a sort photos by creation time 2023-07-25 20:25:07 -04:00
af4827a127 add some links to comments so i can close the chrome tabs :) 2023-07-25 18:49:52 -04:00
50445dbe59 allow mouse forward/back buttons to advance photoIndex. simplify photoIndex logic a bit 2023-07-25 18:38:21 -04:00
3cf125fba7 make the ribbon actually scroll down off the page etc 2023-07-25 18:26:46 -04:00
f9aeb81313 draw black background for thumbnail boxes 2023-07-25 17:18:11 -04:00
4f1adef895 minor cleanups 2023-07-25 17:10:51 -04:00
060565b44a load all metadata at beginning, load textures afterwards 2023-07-25 16:58:41 -04:00
9796827f96 pull ParseExif() into a standalone function 2023-07-25 16:43:11 -04:00
e6d3f197ea ah right, Orientation 4 is just a vertical flip 2023-07-25 15:02:40 -04:00
1336498682 add skeptical comment 2023-07-25 15:00:30 -04:00
4f667f2400 handle all 8 Exif orientations 2023-07-25 14:48:02 -04:00
c461d55101 start of Exif orientation handling 2023-07-25 14:28:57 -04:00
98cae0e9c1 add comment about exif width/height tags 2023-07-25 11:05:00 -04:00
cb01d1dbea ParseRating -> TryParseRating 2023-07-25 09:54:41 -04:00
a33304ae7d draw status box background black 2023-07-25 09:45:40 -04:00
3a9192b478 parse star ratings from canon image metadata 2023-07-25 09:41:13 -04:00
d52e8fce79 clean up null checks on CameraModel/LensModel 2023-07-24 18:55:59 -04:00
25ca0d99ff handle ExposureTime edge cases (for long exposures)
use a black texture while loading instead of white

print some more error messages in EXIF edge cases
2023-07-24 17:13:19 -04:00
6c7dbe5516 add focal length to EXIF display & tweak other EXIF display 2023-07-24 16:39:01 -04:00
4d63f64be6 display some exif data on-screen 2023-07-24 16:07:17 -04:00
56311bc56c add StatusBox geometry and draw it 2023-07-24 13:14:07 -04:00
a0d6267905 make a DrawText function; draw the active photo's filename 2023-07-24 12:53:21 -04:00
028419eb20 String.Format -> $"" 2023-07-24 12:45:41 -04:00
4c72f797ab capitalize function names like a C# programmer 2023-07-24 12:43:38 -04:00
fe9da67b04 draw text indicating zoom level 2023-07-24 12:36:44 -04:00
f853ef7cda add the ability to render text labels and stars 2023-07-24 12:13:13 -04:00
ec6be80143 do memegen-style text better. also fix indentation 2023-07-23 19:29:47 -04:00
9de8c6de51 add sample code for drawing text and shapes 2023-07-23 18:42:08 -04:00
4a857b461c let ` set zoom to 0 2023-07-23 17:34:42 -04:00
b02647d469 add some basic zoom keybinds 2023-07-18 01:42:59 -04:00
4b66284c65 don't use mipmaps? (makes texture loading much slower) 2023-07-17 02:51:15 -04:00
0bc0d97122 load Photos more async'ly 2023-07-17 02:44:34 -04:00
faee485b5c start to load images async 2023-07-16 23:45:50 -04:00
693269b8f5 make photo loading a separate thing from construction 2023-07-16 20:06:37 -04:00
e58f717ffe rename textureIndex -> photoIndex 2023-07-16 19:25:28 -04:00
75e186c392 add new Photo class 2023-07-16 19:23:03 -04:00
8600a7e490 allow keyboard repeat for moving between thumbnails 2023-07-16 19:13:08 -04:00
ee3af4fc57 change hard-coded photo dir 2023-07-09 17:06:33 -04:00
b3e3d3d11a use fancy new type-inferring new() 2023-07-08 00:33:15 -04:00
22aa1e0d88 clean up photo / letterbox centering code 2023-07-08 00:30:05 -04:00
87c8b6cfd0 rm spurious whitespace 2023-07-08 00:20:23 -04:00
95397087d2 let mouse clicks change active photo 2023-07-08 00:18:31 -04:00
5194fec400 clean up TEXTURE_WHITE initialization & thumbnail geometry 2023-07-08 00:04:45 -04:00
ec2989a9b0 use a Vector2i for Texture size 2023-07-07 23:41:32 -04:00
30f21943a8 rm spurious comment 2023-07-07 23:36:49 -04:00