|
|
@ -563,6 +563,7 @@ public class Game : GameWindow { |
|
|
|
int VertexBufferObject; |
|
|
|
int ElementBufferObject; |
|
|
|
int VertexArrayObject; |
|
|
|
List<Photo> allPhotos = new(); |
|
|
|
List<Photo> photos = new(); |
|
|
|
HashSet<int> loadedImages = new(); |
|
|
|
int photoIndex = 0; |
|
|
@ -644,28 +645,42 @@ public class Game : GameWindow { |
|
|
|
// Make sure the photoIndex is actually valid.
|
|
|
|
photoIndex = Math.Clamp(photoIndex, 0, photos.Count - 1); |
|
|
|
|
|
|
|
// Handle presses of the "rating" keys -- 0-5 and `.
|
|
|
|
// A normal press just sets the rating of the current photo.
|
|
|
|
// If the user is holding "shift", we instead filter to only show photos of that rating or higher.
|
|
|
|
int rating = -1; |
|
|
|
|
|
|
|
if (input.IsKeyPressed(Keys.D0) || input.IsKeyPressed(Keys.GraveAccent)) { |
|
|
|
photos[photoIndex].Rating = 0; |
|
|
|
rating = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if (input.IsKeyPressed(Keys.D1)) { |
|
|
|
photos[photoIndex].Rating = 1; |
|
|
|
rating = 1; |
|
|
|
} |
|
|
|
|
|
|
|
if (input.IsKeyPressed(Keys.D2)) { |
|
|
|
photos[photoIndex].Rating = 2; |
|
|
|
rating = 2; |
|
|
|
} |
|
|
|
|
|
|
|
if (input.IsKeyPressed(Keys.D3)) { |
|
|
|
photos[photoIndex].Rating = 3; |
|
|
|
rating = 3; |
|
|
|
} |
|
|
|
|
|
|
|
if (input.IsKeyPressed(Keys.D4)) { |
|
|
|
photos[photoIndex].Rating = 4; |
|
|
|
rating = 4; |
|
|
|
} |
|
|
|
|
|
|
|
if (input.IsKeyPressed(Keys.D5)) { |
|
|
|
photos[photoIndex].Rating = 5; |
|
|
|
rating = 5; |
|
|
|
} |
|
|
|
|
|
|
|
if (rating >= 0) { |
|
|
|
bool shifted = input.IsKeyDown(Keys.LeftShift) || input.IsKeyDown(Keys.RightShift); |
|
|
|
if (shifted) { |
|
|
|
FilterByRating(rating); |
|
|
|
} else { |
|
|
|
photos[photoIndex].Rating = rating; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (input.IsKeyPressed(Keys.Q)) { |
|
|
@ -693,6 +708,10 @@ public class Game : GameWindow { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void FilterByRating(int rating) { |
|
|
|
Console.WriteLine("filter to " + rating); |
|
|
|
} |
|
|
|
|
|
|
|
protected override void OnLoad() { |
|
|
|
base.OnLoad(); |
|
|
|
|
|
|
@ -741,11 +760,12 @@ public class Game : GameWindow { |
|
|
|
string file = files[i]; |
|
|
|
if (file.ToLower().EndsWith(".jpg")) { |
|
|
|
Photo photo = new Photo(file, TEXTURE_BLACK); |
|
|
|
photos.Add(photo); |
|
|
|
allPhotos.Add(photo); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
photos.Sort(ComparePhotosByDate); |
|
|
|
allPhotos.Sort(ComparePhotosByDate); |
|
|
|
photos = allPhotos; |
|
|
|
} |
|
|
|
|
|
|
|
private static int ComparePhotosByDate(Photo x, Photo y) { |
|
|
|