From 08dfe1fe86c633e4b412219c2789ecda8a3b5927 Mon Sep 17 00:00:00 2001 From: thrust26 Date: Mon, 7 Dec 2020 11:41:06 +0100 Subject: [PATCH] added support for default image in ROM info viewer (resolves #601) --- docs/graphics/Stella_icon.png | Bin 0 -> 18519 bytes docs/graphics/resources/default_snapshot.png | Bin 0 -> 18409 bytes docs/index.html | 34 ++++++++------- src/gui/RomInfoWidget.cxx | 41 +++++++++++++------ src/gui/RomInfoWidget.hxx | 3 ++ 5 files changed, 52 insertions(+), 26 deletions(-) create mode 100644 docs/graphics/Stella_icon.png create mode 100644 docs/graphics/resources/default_snapshot.png diff --git a/docs/graphics/Stella_icon.png b/docs/graphics/Stella_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..89a0938d4e57cbfdc323356e4dddeccb4b45e80c GIT binary patch literal 18519 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 -

Stella
-

-

A multi-platform Atari 2600 VCS emulator

+
+ Stella +

+ +

A multi-platform Atari 2600 VCS emulator

-

Release 6.4

-

+

Release 6.4

+
-

User's Guide

+

User's Guide

+

Contents

@@ -570,9 +573,10 @@ The path of the first ROM you play automatically defines the default ROM path. You can change it later in the ROM Launcher dialog.

-

At this point, you may want to set the locations for snapshots. This is described in more detail in Advanced Configuration - Snapshot Settings. - These settings are optional, and can be left at the defaults if you won't be using - snapshots in the ROM launcher.

+

At this point, you may want to set the locations for snapshot images. This + is described in more detail in ROM Launcher. + These settings are optional, and can be left at the defaults if you won't be + using snapshots in the ROM launcher.

You can start emulation by selecting a ROM and pressing 'Enter' or clicking 'Select', or double-clicking a ROM. Note that some games require you to 'Reset' the console @@ -3722,20 +3726,22 @@

Several options are configurable in the ROM launcher. The size of the launcher and fonts, as well as the 'ROM Info Viewer' can be changed in - UI Settings - Launcher dialog, as shown below:

+ the UI Settings - Launcher dialog, as shown below:

Most of the options are self-explanatory, except for the 'ROM info - width', which is described below.

+ width' and 'Image path...', which are described below.

ROM Info Viewer

Stella supports viewing snapshots and ROM properties of the currently selected ROM in the ROM launcher. Support is automatic, as long as your - snapshot directory contains snapshots in the appropriate format. An + image directory contains snapshots in the appropriate format. An archive of updated snapshots will be available on the Stella webpage. This archive may be updated periodically as new ROMs are found, and also - for each new release of Stella. Note that the snapshots can be any size - generated by Stella; they will be resized accordingly.

+ for each new release of Stella. In case no snapshot is found, you can + provide a default image named 'default_snapshot.png'. + Note that the snapshots can be any size (e.g. generated by Stella); they + will be resized accordingly.

The ROM Info Viewer's width can be defined between 0% (off) and 100%. The value is relative to the launcher width. For too small or too large values, diff --git a/src/gui/RomInfoWidget.cxx b/src/gui/RomInfoWidget.cxx index 325cadfda..4cf7f4d33 100644 --- a/src/gui/RomInfoWidget.cxx +++ b/src/gui/RomInfoWidget.cxx @@ -108,20 +108,13 @@ void RomInfoWidget::parseProperties(const FilesystemNode& node) myProperties.get(PropType::Cart_Name) + ".png"; // Read the PNG file - try - { - instance().png().loadImage(filename, *mySurface); + mySurfaceIsValid = loadPng(filename); - // Scale surface to available image area - const Common::Rect& src = mySurface->srcRect(); - float scale = std::min(float(myAvail.w) / src.w(), float(myAvail.h) / src.h()) * - instance().frameBuffer().hidpiScaleFactor(); - mySurface->setDstSize(uInt32(src.w() * scale), uInt32(src.h() * scale)); - mySurfaceIsValid = true; - } - catch(const runtime_error& e) + // Try to load a default image if not ROM image exists + if(!mySurfaceIsValid) { - mySurfaceErrorMsg = e.what(); + mySurfaceIsValid = loadPng(instance().snapshotLoadDir().getPath() + + "default_snapshot.png"); } #else mySurfaceErrorMsg = "PNG image loading not supported"; @@ -176,6 +169,30 @@ void RomInfoWidget::parseProperties(const FilesystemNode& node) setDirty(); } +#ifdef PNG_SUPPORT +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +bool RomInfoWidget::loadPng(const string& filename) +{ + try + { + instance().png().loadImage(filename, *mySurface); + + // Scale surface to available image area + const Common::Rect& src = mySurface->srcRect(); + float scale = std::min(float(myAvail.w) / src.w(), float(myAvail.h) / src.h()) * + instance().frameBuffer().hidpiScaleFactor(); + mySurface->setDstSize(uInt32(src.w() * scale), uInt32(src.h() * scale)); + + return true; + } + catch(const runtime_error& e) + { + mySurfaceErrorMsg = e.what(); + } + return false; +} +#endif + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void RomInfoWidget::drawWidget(bool hilite) { diff --git a/src/gui/RomInfoWidget.hxx b/src/gui/RomInfoWidget.hxx index dbf3beee1..3a3c14f91 100644 --- a/src/gui/RomInfoWidget.hxx +++ b/src/gui/RomInfoWidget.hxx @@ -44,6 +44,9 @@ class RomInfoWidget : public Widget private: void parseProperties(const FilesystemNode& node); + #ifdef PNG_SUPPORT + bool loadPng(const string& filename); + #endif private: // Surface pointer holding the PNG image