Commit Graph

179 Commits

Author SHA1 Message Date
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
30ac76f4c0 construct shader & WHITE_TEXTURE at Game constructor time 2023-07-07 23:29:51 -04:00
72e65b912c fix letterboxing calculation & use new UiGeometry 2023-07-07 16:00:43 -04:00
b41321b0c7 move more calculations into UiGeometry 2023-07-07 14:52:36 -04:00
6812699401 pull some calculations into a new UiGeometry class 2023-07-07 14:24:43 -04:00
6670b358c0 add black border on the drawn box 2023-07-07 02:33:01 -04:00
eff73b2ced make glClearColor actually black 2023-07-07 01:44:51 -04:00
5c2b831ced send Color4 to GL.Uniform4 2023-07-07 01:07:58 -04:00
5b135bc889 use Box2i instead of Rectangle 2023-07-06 23:48:12 -04:00
c7bb0deb0c use Color4 constants 2023-07-06 23:36:55 -04:00
cadc8e4779 Draw{Texture,Box}: allow passing in a different draw color 2023-07-06 23:14:55 -04:00
dd7c3f6615 rm unused imports 2023-07-06 22:33:25 -04:00
ca4ea40916 remove non-Rect versions of Draw{Texture,Box} 2023-07-06 22:13:26 -04:00
cb3994a378 rm borderWidth constant, box thickness 2->3 2023-07-06 21:59:50 -04:00
4ed9ed0796 make Draw{Box,Texture} take a Rectangle 2023-07-06 21:55:51 -04:00
536abbf2b4 add DrawTexture() and DrawBox() functions 2023-07-06 21:26:50 -04:00
4e0a15e3a0 move TEXTURE_WHITE loading; rm shader.Use() from OnRenderFrame() 2023-07-06 19:18:59 -04:00
a94a3938dc add blank white texture 2023-07-06 18:39:17 -04:00
ab9d9a0709 remove frameCount for now 2023-07-06 18:34:34 -04:00
855c97241b add CameraInfo class; load textures from Image rather than a pathname 2023-07-06 18:31:50 -04:00
904726aba6 SetVertices() now takes in a width and height instead of right and bottom 2023-06-29 22:57:38 -04:00
0625040304 letterbox the image so that the aspect ratio is right 2023-06-29 22:52:52 -04:00
a3360b1420 add min window size & use some constants for computing draw positions 2023-06-29 22:31:14 -04:00
f822a07602 add Width and Height to Texture 2023-06-29 22:21:41 -04:00
712472bdfb dos2unix 2023-06-29 22:10:24 -04:00
225a1a623c render little thumbnails for each loaded image 2023-06-29 22:09:08 -04:00
6fc66aba8f use arrows to flip through loaded images 2023-06-29 19:12:40 -04:00
20f8b1e285 load multiple textures, one for every JPG in the input directory 2023-06-29 16:01:49 -04:00
d3e7718b5f make a Texture object 2023-06-29 15:51:42 -04:00
950336b960 initial add. opens a window and puts an image in it 2023-06-29 15:10:05 -04:00