Ensure that sprite aligner click to pick sprites is thread safe
Use a mutex for list of sprite IDs found in (threaded) draw jobs
This commit is contained in:
@@ -24,9 +24,15 @@ enum NewGrfDebugSpritePickerMode {
|
||||
|
||||
/** Spritepicker of SpriteAligner */
|
||||
struct NewGrfDebugSpritePicker {
|
||||
NewGrfDebugSpritePickerMode mode; ///< Current state
|
||||
void *clicked_pixel; ///< Clicked pixel (pointer to blitter buffer)
|
||||
std::vector<SpriteID> sprites; ///< Sprites found
|
||||
NewGrfDebugSpritePickerMode mode = SPM_NONE; ///< Current state
|
||||
void *clicked_pixel = nullptr; ///< Clicked pixel (pointer to blitter buffer)
|
||||
std::vector<SpriteID> sprites; ///< Sprites found
|
||||
|
||||
void DrawingComplete();
|
||||
void FoundSpriteDuringDrawing(SpriteID sprite);
|
||||
|
||||
private:
|
||||
std::vector<SpriteID> draw_found_sprites; ///< Sprites found (used from threaded drawing jobs, mutex must be held for all accesses)
|
||||
};
|
||||
|
||||
extern NewGrfDebugSpritePicker _newgrf_debug_sprite_picker;
|
||||
|
||||
Reference in New Issue
Block a user