From f28730cdc16d4786c3bd7802468ccf2b8256a63e Mon Sep 17 00:00:00 2001 From: peterdell Date: Sun, 30 Dec 2018 16:29:54 +0100 Subject: [PATCH] Add Graphics plugin --- com.wudsn.ide.gfx/.classpath | 8 + com.wudsn.ide.gfx/.project | 28 + .../.settings/org.eclipse.jdt.core.prefs | 7 + com.wudsn.ide.gfx/META-INF/MANIFEST.MF | 20 + com.wudsn.ide.gfx/Scrapbook.jpage | 1 + com.wudsn.ide.gfx/bin/.gitignore | 2 + com.wudsn.ide.gfx/build.properties | 15 + com.wudsn.ide.gfx/icons/Thumbs.db | Bin 0 -> 6656 bytes com.wudsn.ide.gfx/icons/file-type-charset.gif | Bin 0 -> 905 bytes com.wudsn.ide.gfx/icons/file-type-picture.gif | Bin 0 -> 910 bytes .../icons/graphics-editor-16x16.gif | Bin 0 -> 1763 bytes com.wudsn.ide.gfx/icons/occ_write.gif | Bin 0 -> 218 bytes com.wudsn.ide.gfx/icons/refresh.gif | Bin 0 -> 327 bytes com.wudsn.ide.gfx/icons/save_edit.gif | Bin 0 -> 639 bytes com.wudsn.ide.gfx/icons/saveall_edit.gif | Bin 0 -> 604 bytes com.wudsn.ide.gfx/icons/search_ref_obj.gif | Bin 0 -> 356 bytes com.wudsn.ide.gfx/icons/searchm_obj.gif | Bin 0 -> 200 bytes com.wudsn.ide.gfx/icons/smartmode_co.gif | Bin 0 -> 553 bytes com.wudsn.ide.gfx/icons/zoom-disabled.gif | Bin 0 -> 326 bytes com.wudsn.ide.gfx/icons/zoom.gif | Bin 0 -> 546 bytes com.wudsn.ide.gfx/lib/js-src.zip | Bin 0 -> 699883 bytes com.wudsn.ide.gfx/lib/js.jar | Bin 0 -> 1134765 bytes com.wudsn.ide.gfx/plugin.properties | 60 ++ com.wudsn.ide.gfx/plugin.xml | 567 ++++++++++++ com.wudsn.ide.gfx/plugin_de_DE.properties | 60 ++ .../schema/com.wudsn.ide.gfx.converters.exsd | 183 ++++ .../src/com/wudsn/ide/gfx/GraphicsPlugin.java | 124 +++ .../src/com/wudsn/ide/gfx/Texts.java | 110 +++ .../src/com/wudsn/ide/gfx/Texts.properties | 73 ++ .../com/wudsn/ide/gfx/Texts_de_DE.properties | 72 ++ .../wudsn/ide/gfx/converter/Converter.java | 182 ++++ .../gfx/converter/ConverterCommonData.java | 131 +++ .../converter/ConverterCommonParameters.java | 234 +++++ .../ide/gfx/converter/ConverterConsole.java | 101 +++ .../ide/gfx/converter/ConverterData.java | 161 ++++ .../ide/gfx/converter/ConverterDataLogic.java | 787 +++++++++++++++++ .../gfx/converter/ConverterDefinition.java | 285 ++++++ .../gfx/converter/ConverterParameters.java | 270 ++++++ .../ide/gfx/converter/ConverterRegistry.java | 305 +++++++ .../ide/gfx/converter/ConverterScript.java | 162 ++++ .../gfx/converter/ConverterScriptData.java | 121 +++ .../ConverterSourceFileDefinition.java | 45 + .../ConverterTargetFileDefinition.java | 46 + .../ide/gfx/converter/FilesConverterData.java | 212 +++++ .../converter/FilesConverterDataLogic.java | 293 +++++++ .../converter/FilesConverterParameters.java | 550 ++++++++++++ .../gfx/converter/ImageColorHistogram.java | 240 +++++ .../ide/gfx/converter/ImageConverterData.java | 247 ++++++ .../converter/ImageConverterParameters.java | 372 ++++++++ .../wudsn/ide/gfx/converter/InverseBlock.java | 70 ++ .../ide/gfx/converter/InverseBlockList.java | 88 ++ .../ide/gfx/converter/PaletteMapper.java | 177 ++++ .../src/com/wudsn/ide/gfx/converter/Tile.java | 261 ++++++ .../com/wudsn/ide/gfx/converter/TileSet.java | 240 +++++ .../apple2/HiresGraphicsConverter.java | 119 +++ .../apple2/HiresGraphicsConverter.js | 32 + .../AsymetricalPlayfieldConverter.java | 73 ++ .../AsymetricalPlayfieldConverter.js | 40 + .../atari8bit/Atari8BitPaletteMapper.java | 41 + .../atari8bit/Atari8BitPaletteUtility.java | 233 +++++ .../atari8bit/Atari8BitPaletteUtility2.java | 361 ++++++++ .../converter/atari8bit/Atari8BitUtility.java | 299 +++++++ .../atari8bit/CharMapGraphics12Converter.java | 308 +++++++ .../atari8bit/CharMapGraphics12Converter.js | 4 + .../atari8bit/LinearBitMapAP3Converter.java | 101 +++ .../atari8bit/LinearBitMapAPACConverter.java | 98 +++ .../atari8bit/LinearBitMapAPACConverter.js | 14 + .../atari8bit/LinearBitMapAPCConverter.java | 105 +++ .../atari8bit/LinearBitMapCINConverter.java | 195 ++++ .../atari8bit/LinearBitMapCPRConverter.java | 122 +++ .../atari8bit/LinearBitMapGHGConverter.java | 100 +++ .../LinearBitMapGraphics10Converter.java | 64 ++ .../LinearBitMapGraphics10Converter.js | 14 + .../LinearBitMapGraphics15Converter.java | 99 +++ .../LinearBitMapGraphics15Converter.js | 16 + .../LinearBitMapGraphics8Converter.java | 93 ++ .../LinearBitMapGraphics8Converter.js | 19 + .../LinearBitMapGraphics9Converter.java | 96 ++ .../LinearBitMapGraphics9Converter.js | 14 + .../atari8bit/LinearBitMapHIPConverter.java | 193 ++++ .../atari8bit/LinearBitMapHIPConverter.js | 31 + .../atari8bit/LinearBitMapHR2Converter.java | 122 +++ .../atari8bit/LinearBitMapHRConverter.java | 108 +++ .../atari8bit/LinearBitMapILCConverter.java | 102 +++ .../atari8bit/LinearBitMapINPConverter.java | 117 +++ .../atari8bit/LinearBitMapINTConverter.java | 147 ++++ .../atari8bit/LinearBitMapKoalaConverter.java | 147 ++++ .../atari8bit/LinearBitMapMCPConverter.java | 123 +++ .../LinearBitMapMicroPainterConverter.java | 107 +++ .../atari8bit/LinearBitMapRIPConverter.java | 698 +++++++++++++++ .../atari8bit/LinearBitMapTIPConverter.java | 170 ++++ .../converter/atari8bit/palettes/altirra.act | Bin 0 -> 768 bytes .../atari8bit/palettes/atari800winplus.act | Bin 0 -> 768 bytes .../gfx/converter/atari8bit/palettes/c64.act | Bin 0 -> 768 bytes .../converter/atari8bit/palettes/default.act | Bin 0 -> 768 bytes .../gfx/converter/atari8bit/palettes/g2f.act | Bin 0 -> 768 bytes .../gfx/converter/atari8bit/palettes/gray.act | Bin 0 -> 768 bytes .../converter/atari8bit/palettes/green.act | Bin 0 -> 768 bytes .../converter/atari8bit/palettes/jakub.act | Bin 0 -> 768 bytes .../gfx/converter/atari8bit/palettes/laoo.act | Bin 0 -> 768 bytes .../converter/atari8bit/palettes/olivierp.act | Bin 0 -> 768 bytes .../gfx/converter/atari8bit/palettes/real.act | Bin 0 -> 768 bytes .../converter/atari8bit/palettes/xformer.act | Bin 0 -> 768 bytes .../atarist/InterleavedBitMap4Planes.java | 134 +++ .../gfx/converter/c64/C64PaletteMapper.java | 57 ++ .../ide/gfx/converter/c64/C64Utility.java | 86 ++ .../gfx/converter/c64/SpriteConverter.java | 34 + .../converter/c64/SpriteHiresConverter.java | 119 +++ .../c64/SpriteMultiColorConverter.java | 72 ++ .../ide/gfx/converter/c64/palettes/pepto.pal | Bin 0 -> 48 bytes .../converter/generic/BitMapConverter.java | 35 + .../converter/generic/CharMapConverter.java | 36 + .../generic/CharMapHiresConverter.java | 76 ++ .../generic/CharMapMultiColorConverter.java | 77 ++ .../generic/CharSet1x1HiresConverter.java | 123 +++ .../generic/CharSet1x1HiresConverter.js | 28 + .../CharSet1x1MultiColorConverter.java | 69 ++ .../generic/CharSet1x1MultiColorConverter.js | 29 + .../generic/CharSet2x1HiresConverter.java | 127 +++ .../generic/CharSet2x1HiresConverter.js | 28 + .../generic/CharSet2x2HiresConverter.java | 128 +++ .../CharSet2x2MultiColorConverter.java | 72 ++ .../converter/generic/CharSetConverter.java | 33 + .../generic/LinearBitMapConverter.java | 31 + .../TiledBitMap2x2MultiColorConverter.java | 121 +++ .../generic/TiledBitMapConverter.java | 35 + .../generic/TiledBitMapHiresConverter.java | 67 ++ .../TiledBitMapMultiColorConverter.java | 68 ++ .../gfx/editor/FilesConverterDataView.java | 327 +++++++ .../wudsn/ide/gfx/editor/GraphicsEditor.java | 729 +++++++++++++++ .../GraphicsEditorOpenCommandHandler.java | 39 + .../src/com/wudsn/ide/gfx/editor/Icons.java | 43 + .../gfx/editor/ImageConverterDataView.java | 297 +++++++ .../ide/gfx/editor/ImagePaletteView.java | 829 ++++++++++++++++++ .../wudsn/ide/gfx/editor/ImageProvider.java | 57 ++ .../com/wudsn/ide/gfx/editor/ImageView.java | 288 ++++++ .../com/wudsn/ide/gfx/gui/AspectField.java | 134 +++ .../wudsn/ide/gfx/gui/ConverterIdField.java | 128 +++ .../com/wudsn/ide/gfx/gui/ImageCanvas.java | 369 ++++++++ .../wudsn/ide/gfx/gui/ImageCanvasUtility.java | 202 +++++ .../com/wudsn/ide/gfx/gui/SourceFileView.java | 147 ++++ .../com/wudsn/ide/gfx/gui/TargetFileView.java | 119 +++ .../src/com/wudsn/ide/gfx/model/Aspect.java | 82 ++ .../wudsn/ide/gfx/model/AspectUtility.java | 93 ++ .../ide/gfx/model/ConverterDirection.java | 24 + .../wudsn/ide/gfx/model/ConverterMode.java | 24 + .../model/GraphicsPropertiesSerializer.java | 151 ++++ .../src/com/wudsn/ide/gfx/model/Palette.java | 24 + .../com/wudsn/ide/gfx/model/PaletteType.java | 25 + .../wudsn/ide/gfx/model/PaletteUtility.java | 156 ++++ .../com/wudsn/ide/gfx/model/RBGUtility.java | 63 ++ 151 files changed, 17670 insertions(+) create mode 100644 com.wudsn.ide.gfx/.classpath create mode 100644 com.wudsn.ide.gfx/.project create mode 100644 com.wudsn.ide.gfx/.settings/org.eclipse.jdt.core.prefs create mode 100644 com.wudsn.ide.gfx/META-INF/MANIFEST.MF create mode 100644 com.wudsn.ide.gfx/Scrapbook.jpage create mode 100644 com.wudsn.ide.gfx/bin/.gitignore create mode 100644 com.wudsn.ide.gfx/build.properties create mode 100644 com.wudsn.ide.gfx/icons/Thumbs.db create mode 100644 com.wudsn.ide.gfx/icons/file-type-charset.gif create mode 100644 com.wudsn.ide.gfx/icons/file-type-picture.gif create mode 100644 com.wudsn.ide.gfx/icons/graphics-editor-16x16.gif create mode 100644 com.wudsn.ide.gfx/icons/occ_write.gif create mode 100644 com.wudsn.ide.gfx/icons/refresh.gif create mode 100644 com.wudsn.ide.gfx/icons/save_edit.gif create mode 100644 com.wudsn.ide.gfx/icons/saveall_edit.gif create mode 100644 com.wudsn.ide.gfx/icons/search_ref_obj.gif create mode 100644 com.wudsn.ide.gfx/icons/searchm_obj.gif create mode 100644 com.wudsn.ide.gfx/icons/smartmode_co.gif create mode 100644 com.wudsn.ide.gfx/icons/zoom-disabled.gif create mode 100644 com.wudsn.ide.gfx/icons/zoom.gif create mode 100644 com.wudsn.ide.gfx/lib/js-src.zip create mode 100644 com.wudsn.ide.gfx/lib/js.jar create mode 100644 com.wudsn.ide.gfx/plugin.properties create mode 100644 com.wudsn.ide.gfx/plugin.xml create mode 100644 com.wudsn.ide.gfx/plugin_de_DE.properties create mode 100644 com.wudsn.ide.gfx/schema/com.wudsn.ide.gfx.converters.exsd create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/GraphicsPlugin.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts.properties create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts_de_DE.properties create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/Converter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterCommonData.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterCommonParameters.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterConsole.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterData.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterDataLogic.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterDefinition.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterParameters.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterRegistry.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterScript.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterScriptData.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterSourceFileDefinition.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterTargetFileDefinition.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterData.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterDataLogic.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterParameters.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageColorHistogram.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageConverterData.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageConverterParameters.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/InverseBlock.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/InverseBlockList.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/PaletteMapper.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/Tile.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/TileSet.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/apple2/HiresGraphicsConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/apple2/HiresGraphicsConverter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari2600/AsymetricalPlayfieldConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari2600/AsymetricalPlayfieldConverter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteMapper.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteUtility.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteUtility2.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitUtility.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/CharMapGraphics12Converter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/CharMapGraphics12Converter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAP3Converter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPACConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPACConverter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPCConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapCINConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapCPRConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGHGConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics10Converter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics10Converter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics15Converter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics15Converter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics8Converter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics8Converter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics9Converter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics9Converter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHIPConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHIPConverter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHR2Converter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHRConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapILCConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapINPConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapINTConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapKoalaConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapMCPConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapMicroPainterConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapRIPConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapTIPConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/altirra.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/atari800winplus.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/c64.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/default.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/g2f.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/gray.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/green.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/jakub.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/laoo.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/olivierp.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/real.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/xformer.act create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atarist/InterleavedBitMap4Planes.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/C64PaletteMapper.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/C64Utility.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteHiresConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteMultiColorConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/palettes/pepto.pal create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/BitMapConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapHiresConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapMultiColorConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1HiresConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1HiresConverter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1MultiColorConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1MultiColorConverter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x1HiresConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x1HiresConverter.js create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x2HiresConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x2MultiColorConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSetConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/LinearBitMapConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMap2x2MultiColorConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapHiresConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapMultiColorConverter.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/FilesConverterDataView.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/GraphicsEditor.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/GraphicsEditorOpenCommandHandler.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/Icons.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageConverterDataView.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImagePaletteView.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageProvider.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageView.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/AspectField.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ConverterIdField.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ImageCanvas.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ImageCanvasUtility.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/SourceFileView.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/TargetFileView.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/Aspect.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/AspectUtility.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/ConverterDirection.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/ConverterMode.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/GraphicsPropertiesSerializer.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/Palette.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/PaletteType.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/PaletteUtility.java create mode 100644 com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/RBGUtility.java diff --git a/com.wudsn.ide.gfx/.classpath b/com.wudsn.ide.gfx/.classpath new file mode 100644 index 00000000..688cd937 --- /dev/null +++ b/com.wudsn.ide.gfx/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/com.wudsn.ide.gfx/.project b/com.wudsn.ide.gfx/.project new file mode 100644 index 00000000..58ae691f --- /dev/null +++ b/com.wudsn.ide.gfx/.project @@ -0,0 +1,28 @@ + + + com.wudsn.ide.gfx + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/com.wudsn.ide.gfx/.settings/org.eclipse.jdt.core.prefs b/com.wudsn.ide.gfx/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..f287d53c --- /dev/null +++ b/com.wudsn.ide.gfx/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/com.wudsn.ide.gfx/META-INF/MANIFEST.MF b/com.wudsn.ide.gfx/META-INF/MANIFEST.MF new file mode 100644 index 00000000..8f5a93a3 --- /dev/null +++ b/com.wudsn.ide.gfx/META-INF/MANIFEST.MF @@ -0,0 +1,20 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: WUDSN IDE Graphics Plug-in +Bundle-SymbolicName: com.wudsn.ide.gfx;singleton:=true +Bundle-Version: 1.7.0.qualifier +Bundle-Activator: com.wudsn.ide.gfx.GraphicsPlugin +Bundle-Vendor: Peter Dell +Require-Bundle: com.wudsn.ide.base, + org.eclipse.core.runtime, + org.eclipse.core.resources, + org.eclipse.ui, + org.eclipse.ui.editors, + org.eclipse.ui.ide, + org.eclipse.ui.console +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ActivationPolicy: lazy +Bundle-Localization: plugin +Export-Package: com.wudsn.ide.gfx.editor +Bundle-ClassPath: lib/js.jar, + . diff --git a/com.wudsn.ide.gfx/Scrapbook.jpage b/com.wudsn.ide.gfx/Scrapbook.jpage new file mode 100644 index 00000000..8bb588a4 --- /dev/null +++ b/com.wudsn.ide.gfx/Scrapbook.jpage @@ -0,0 +1 @@ +The method getAtariRGBColor(int) is undefined for the type PaletteTypeUtility com.wudsn.ide.base.common.HexUtility.getLongValueHexString( com.wudsn.ide.gfx.model.PaletteTypeUtility.getAtariRGBColor(0xff)); diff --git a/com.wudsn.ide.gfx/bin/.gitignore b/com.wudsn.ide.gfx/bin/.gitignore new file mode 100644 index 00000000..78ec4cc4 --- /dev/null +++ b/com.wudsn.ide.gfx/bin/.gitignore @@ -0,0 +1,2 @@ +/com +/palettes diff --git a/com.wudsn.ide.gfx/build.properties b/com.wudsn.ide.gfx/build.properties new file mode 100644 index 00000000..3172fd22 --- /dev/null +++ b/com.wudsn.ide.gfx/build.properties @@ -0,0 +1,15 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + plugin.properties,\ + src/,\ + schema/,\ + icons/,\ + build.properties,\ + .project,\ + .classpath,\ + lib/js.jar,\ + plugin_de_DE.properties + diff --git a/com.wudsn.ide.gfx/icons/Thumbs.db b/com.wudsn.ide.gfx/icons/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..49544ea95e690c09fd1a33104a78c41beaa38054 GIT binary patch literal 6656 zcmeI0doxq~W|$eGEyk;o$|Dt(Esx5cYE!#Q9W4oAJ@OXSsiYKzTD7*P zl323xOfN#AY#zOg&dF;RwH1}e60_ecTD7N|IQ`Mdcjn{%?(g@#kMF(r`~7`K`Atsk z@ifIc^p?y;WYj03BZ(pR3Ao1e3mYL4T;O`2NF;i76Ct=9mCtAedSR}#fjy)^Nd@qp zOAg$lL&*T72I`-YX`@pWV+Aac2Yh^xGBQK%PF4<}}D7<_i#C$&8#U$gk7 z1Q{!_UTNyQuYnlPC=i7P$H%1@P5M>z`X_;q39ZTIIa%$e;gBV3>fPF(on~-ej=23``{ITIDjl5 z2XFx%zz5_31z-%I2q*!#?N?Ba1I7c&fC?Z0Q~@1iYX(@X3B76q@>tE^oG@{c{&a&GGiMo^n3|a{Sh&by`HJtp|G~<7rTtn5N2hhpF5W)A ze*OW08@7dP58bgdY*+NY{XfSXIQUC!+=-L%rxH#lCY?>s$jr*lIhT8-ps?ubwc?V} z%Bowp@7%ptEv&0=X#Df9rskH1ZO@*+Xz%Fk`llP)MIiDkvtC>FmR%gMi$tN2DKu;s zLGlO4912xMM?!YqGMe3bIf3pLN$&ip<7xSHRXxjA-Wsn82479TPQ4AA)^C}3hHV{| zWv>nU&n_X7CKIrEWDYV$Jz5>nT_WULd(rUe($=g5foodn?}af2zj;}=UR|nFZ6ly> ze|R#+D4=l8nA93yUSDiNWx+2I#d8`Ro1?`_De zY)YS>W$5s0VP%+t?fL60WUrN>BdrixJTo=X>$>Wevy02RZH)gY?0a5%O;kO2&iYF> zqV>m3Tc}}h%<4ahyVaD9c%_6lyj$FmC%j)AAZ|G!XXFSP2+aj>+#U2k(^3B$^}lxo zmQUn=P4(H~?k`xpmJLe|+i9epagDBV&Rx7;c%$1P@=(EP8;j>o3I z&!iiVQff2Xtz)<2qvEO}dT%Gy^zL$yo!!YdIB!+lf^)W!2+n_TS2&j9 z%toBPv_NTad~x(Yq%$<5`jGCYcs`QxNAn*s61z_ne=j%4NBAC<>AG1EYrf;;f>f8> z-usF+@hMF^r}*r)VpaPZol_4~4t3OY2+f#JAM+D`zcVB9s z`f-(u|D74#`of6JO6{05cebEll3sFlOr>2%Eh(=N1u;og1wy?pqk=wG>-}7bh=d1a z)6&w*HL8*yN2NUZh9|*|@L!~?CX?KVn!}CpZ+b__Y;caF4Zo%XA>YAQ_GlesKVHZi zYCiwVe)j#()o{U^v}Qbzj*or4*&oF literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/icons/file-type-charset.gif b/com.wudsn.ide.gfx/icons/file-type-charset.gif new file mode 100644 index 0000000000000000000000000000000000000000..54fd583b837ddfa0f169973a5441d716132f8651 GIT binary patch literal 905 zcmZ?wbhEHb6krfw_|Cxa`Rnf=KmRmO+}J#EL;K`)&674ZP2A8tX~Vluzdn8a{qxtK zA3uM$&Dz&9|4`eMb=}iefB5oy^0H&I)|_6n`TU9g1UVZra?Z@v4vsOHN_w&Qo-=Dtyo;G*M*B`&X|NK35 z?vmLH7cN{fXZea5%U8@?yL#%T^^-QOo3wjN_x6o_+c);_-`4TqME{jd8CN!C-r8Gp zbyMd5|Nj|A!Dt9jDFk#t=791714kZ1IfsnL28DxC9KuQ_8XMXiW%zhc8O(5YcWE+V z`E=vNVYfbMW3FR24mKg1UVZra?Z@v4vsOHN_w&Qo-=Dtyo;G*M*B`&X|NK35 z?vmLH7cN{fXZea5%U8@?yL#%T^^-QOo3wjN_x6o_+c);_-`4TqME{jd8CN!C-r8Gp zbyMd5|Nj|A!Dt9jDFk#t=791714l7KIfsnL28DxC9KuQ_8XMXiW%zhc8O(5YcWE*y z`*35&MYld_W3FQtJSMa|NU+9FkjW@&_iEA&kD&w|!7^H@VOLL9cd s=o4mj|0AQdiNb>!TyZsmI`-jhce*S#!6&fDmgZ$PG zumg61|2lTk%hnlbZ-3Fj!Pm~&`@~0nM?B8hpSt9XM7p`T0YJQ?V*qd}z|kG$jEr|V z7x4)q;?s+9=PxI^g@=ERiuVdk@(Q~VaM-oT$optC8UPBM&_jNi1Hcb5AaBX_)^t=< zK|;`z*jQ{rVtGmmE+nKq;)~{#Yq&I2MOqs1dO9f`L&juMzR#+~+^oy|u`xThIV+!r zh7qY|pNxIapN*%ZC-22-62IDt&Q^u{ceevr4Nze?`kT&*Xa>lT4PpCujmDt{a%!4! zqJy^0D<4uJ?~>UwgpIScMxV;H(~V}Y#(e}x4s7pE$1?8~w%;jcg#0=h`gkU;LYQ1B z`lfmTMN}n_mqMwVK~1|MFW}fejPc!;3_Sk^MV$MPl}{MWpe|zSR?_+`xoyf^n)WVZ zJ9q@2%Z3J#eh>XI^?p|wmr%n#-mfp%LI_|aFYn;KodZ`3w$IU3PRwNwaN+p;n5#-^ zV*vrP$kre@u{Pqq1$yj>U5%5TGrTLWWl5VaQ?X@T4{*IyT3JIEp@;(hf|C_K6_*j^ z<)j5Xk&Uk!##e!rHR9@ObLn$#QJnW(ETq;ubz-i71@uQogB% zrNOax@VtEj-%J@XkcDQV1ZGZ*cX8#7?DbZjx|P4#A~5_Z);3H+ZBnRLsC>cGbqaKU z3H5_QxJRO)PZ{Xb`}7&h(3GW54s|TSObyH)lqwgim9OeWB9VY2op?1X9g`iz<-)vi z7zDQk0*F1WWlJI6oSq|x!D(1HZ;>plN#yW?Vnntq$QLtLy8U4Xt9ssL(;1Te`n@EbzvfUa#LWLi#=EpIxJAZ`Wdh4!+~E z_mxtN>OptU!)7D)N2A;*ocrJ33YzTWfiiI-YzvM_W!ECPb?!@1lzN897m_qgB~qrF@TP2@_=F zDnHQkLUa2qUQA+ry6EI1m$2I_MP;{f{ZHsW&D(8XPe6S4*;q^V+IY;z{`oh(#>7}y<2cejP+7L NUl(Qyu(k$#{{@hZ6omi) literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/icons/occ_write.gif b/com.wudsn.ide.gfx/icons/occ_write.gif new file mode 100644 index 0000000000000000000000000000000000000000..18576d47e9b4d890b471670e088a8522d1625d64 GIT binary patch literal 218 zcmV<0044uNNk%w1VGsZi0K@_7KFmj&n~Hp}Vw-@Yty7#D4bX$di0mlz&~7fnbw(QIBajj%hfLY(9{1Ly&Mp zl5|RsX*t)*y8r+GA^8LW0018VEC2ui01yBW000G7;3tk`X^xe2nkf{mBPF>O{7rLI z!&bhpoE*odakw_5M1thWJRX-)La`J9I+*C^z~wd+2P?oMGBD0)hQeSfEZ*=1qHrSE U?FaJWa!4-LeYm0=|77MK@5?WI%v@BcT|Ns9CR0WDZSr{1@R2g(Yrh@#$z?O1g zQh|q#RHw+PiyoXB)1AE)3U1~skT{fJ?U6BUYICAZn$5HYp3GD7dKS#fQdLEHHy z6I^aRo~tUt;P2kV6w~t;=?ud9vy7?cE^q z*1q%4_Md-x_|o&km!6%t_VVPl7w2!kK6mTY)%$O+-hXrZ@w-PaKBPA<&u(2-(6RIc zNcPq9H=oX5zOnP@<=ao*J$&)u*_+SB-Al@Q7r*)NC8Bg+ zz;2_n+r|KMbN2{G6a4_&{kGN)4gvc5juAGR#sRMOu1@w&t^vlzRuN`KMgigX?uQ4k zYgk5@s;SFPcrC52W*VWRCnlyRuKMMRsEVpigru?tONzsU2OVNcZfg!)N^s&3;9>A! zDQIQv=+@exGeO}YGc&uwQjf$B2b)>gB6wUn7Bn7go*uf&AmXGW<1{9LBBLK|ieaE;tKzCxCDyJ=s$F^V_OIQipFDZ_@%^Xosf{aB z8djXR^XtI*X9q7lJ9g#8@hdOR-h6fK!TXz!KHPo!@%8(!sf{bLTb6G+e0%qqCkHM( zJ9q2V)%$O+-hcD#&6lj!3Zm&TUMs?>Hp{5*kiVV`gGxum%8B;oI>5 literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/icons/search_ref_obj.gif b/com.wudsn.ide.gfx/icons/search_ref_obj.gif new file mode 100644 index 0000000000000000000000000000000000000000..f8f0ce5aa85ebb3a92cb6d6dd84431735140e76a GIT binary patch literal 356 zcmV-q0h|6uNk%w1VGsZi0M!5h@bmlg_4|gCuJ!l(`TG3$`TODN_{z`N@bvrN==Zg} z$h*SLhSsS^!oSt{Py_!;Oh9czRBb4`0euf zx4+5e?)d5O`Stkwy3N;fXE%IsK6`IIdvHF4bUb=&I(BF{d~ZB_Z$623JA`vQf^j^5 za6OZIIgoidjdwYzhBKvvG@ybtoq#o*e>RqUH{i&RvWhUNg)`K$XwQj6#z9%MGyxYHbo&2j1WE$93B)diXfJZ z850d1FhwT}pb!e63>qp$CI+etsuCCmB}FI+w6zHl5iCV5BO)Rszal9qEriBCK>#~< C>#Yhl@3S~$W8`UR|S>6l+1Z6eyq{_DRaDeoe7h| zrk^@C@+{qRvK@4UnwPdGoJ`Sbnc$x2HP>pv#g?#a1CLdMiZc literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/icons/smartmode_co.gif b/com.wudsn.ide.gfx/icons/smartmode_co.gif new file mode 100644 index 0000000000000000000000000000000000000000..542dddca3f29bc0bdb8149eafc372c37c6a0b1fd GIT binary patch literal 553 zcmZ?wbhEHb6krfwc*el+;?-NPgsN@(PDB;;v`t$vZ_S?7+YUt*b*ESMRCdjoxNy^+ zqvz@-E{?38nO4$}K5a+#g2M?_U4MT){QhRHQL#98EnEyO#{^Q=1ANQyId$#27%ME{DZvOjf z+xLTJ-){E*xIO9b(={Kr>VMdz_j!lm=beUMFL!*u*7NV_ns@7TK5W$ca<2Ky`PP?< zHC`>ze6>{b^$M-GtF-?=+4vs}7=|oR{K>+|z~IQB1M&eVP8itR8XTLN9W5;^TRNMJ zt$KTnyP8a_rR=9k*_ceUl~*^_GgX(j?b5Z=($rAY(A2Wi?Nl|BmXVW{laV%4?Nl=t zmk<&Wk`Omg>(Un%l@yZ{71p1qW8`q{n&HGI1*PlS3b&e+ud6(4;$`LHVSeVw@4&#s a{#L+&o9**6K^9I9zPFA{93dhc4AuZ>ez)NO literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/icons/zoom-disabled.gif b/com.wudsn.ide.gfx/icons/zoom-disabled.gif new file mode 100644 index 0000000000000000000000000000000000000000..d460ddda617e1730ecf8055a51592e83164ec54b GIT binary patch literal 326 zcmZ?wbhEHb6krfwxXQrr=FQvJuird-_WZ!X!`H6gxN`N{nX~5(9y46|hHs$?yA&dm7%F2j8pvRfzHPa(-tpUwRPK`Bb#>~ zZ0wnJ>)xZs&tJcM^Zwq$C+|Ldx_kfOr7PEd{`&ps@srMpGbYVic=`IRL&r`&e*Wst zgU9baet!Ap-P0GZ?mT>Q>)wMe-@fnOf8g`iuiw6ZZ|dyWwRhLn9b2YMpK$5&`HPp% zEm$~x*RBm$ubzAK==R<{Yqo5fwRFkU1#=trY@c%K_{Jj#*REeyvSePxrE}Yk9oc^W z?uCuZOIOSCMOoj!eC{gB?kdXZEX?UHE9xvQ zZpzF1|NsBLfB$~}{{7|4mrtKQy?F8B*|TRrL59Hr6o0ZXGB5-&=zyF9iW3I*`i7vU z=9bnLb5mPeE1R}vBa=XXKR-+BK4XgjpE*9hc4lpcjKWKoDeLRD8i**YTd$;}*QzBb zy?uv(rgp2k5Z{4=GHM#Fs*3Wwr+6i0Rr*9F#ChbT_{Hq|g4kKPI61f(TpVsOv9K|F c2RS)9-)eJnbba6I?&$HQ#nbC&TO)%t0Q2DGu>b%7 literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/lib/js-src.zip b/com.wudsn.ide.gfx/lib/js-src.zip new file mode 100644 index 0000000000000000000000000000000000000000..d4187d593bcc4ef6da57473096696edfffcebfa9 GIT binary patch literal 699883 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

h;===xrq(kzym5TC?>ubysuIP{3+mkiJg_aSws= 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

sz;l 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

py0?V$0NzRR_qFkeY9$`17w4b%J}? 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�Upkhf!yt3D2tYS_M;ITD*~F^ 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�I9&|} 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 literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/lib/js.jar b/com.wudsn.ide.gfx/lib/js.jar new file mode 100644 index 0000000000000000000000000000000000000000..6f0dafbbc7842419587951a8a6d3a01e65973451 GIT binary patch literal 1134765 zcmeFYW0Y;p(k@uLY}>YN+qUhhUAAr8cI~ol+t_8>uHNUK``vraJNmr$>mL2H=NK{O zT)EVQL%r!HXyc7^HBme+70Kik+JU_s{To3@j05T%V0yGk`qI6&5008p;lNB7` z@eeB!=>_oQA9kT10078;?*EHbMnG0VR76RcRz}o0RzPZiA3pdR>K*T?EY#YNLitG* z2&4}m_)=xq*s|H$C1q_cuV=d`05xLex!e6-7ibQTUaC%PI;Vh%t$E%OYbMDiz?PrM zs=?h#O>-#;)V~>q%J{9iA z1p+U=>qVkE0p!}z520UBHA|mqfHCNYNek&YN$&s-e`DZ$=%)alU0BJSMLD;&i~>l;6J^$b1ij}}=NJGxpp8JYi$L;l8}|Fp=`(dcjBf0M@lg#X`->0kTtH*?rO zg*cjc7sqe>4BN+5D^0zXI|9b3FV5XklajcW8?L2KtW} zLlc94o4x<)I=sIX^KUl%bGiS0I7hYmXPu7{004mc1D2K$5|LFBp>=X|s@B$u#bT@X zIj%KFXCIvu#ML8}b?IV<+a4Ul{1u2V%gP?B%%)XPy0pmJA-4SWrlf~5Myi!S7l{Ep z7PUxSf2D^~dH=qw%=Os^BT`qH=Z&|8S7%?Ink z6K(5OMESOcvGqQF;-R(HUH9Ca?xfb1e>NH7!|(~NJ6w%h=|S(o?4z<2A9lNRk_OGb zcm30FrG~!`C+rUHY8!g+#d9SFj3*5%>%iSTVbs!xko3gGYC|mJLqQV+_cp&!4opvH zt$F_Qwmn09T-wyT$|>2d;9c}(_1vKGaq*Pk`wL4C{@8K*=vW)ueheM9kZ#u0@HbLSAw8JO!K;$2eyQ(zZv%`7bieYt*-CpdJ|5i z8r9d{qnMIhp{}bxclL^$FwaJ6_|621)Oog*wUt$NP?r}kx0GkykEL}eh>ex4#Z@1r z%PsuMeA0c*ltHM3!OWb-4zhXnnOqm*_K=H;xd8?bznP-KmlY~+8p;pE@Pm2tsM^zX zd{Pd>gc&}33x*m+E?+V#SghKHXgOxzJRR4J!Tjr{OZEPS+*s390XK`|_nno4xEsX6 z(CPVxzFwf~$_VuSQ>ra@wnQmqLXG-1q`tbi9wGud%{IERPd8kM2A&WMcVWzcZM49sCMRQgMb7{2xY+27;UpVP4_9b(>ORr2G4P zKPAf)(Sy0CL6ds+^!vRqgv}N9&n(1#M&W&EdB7`<AqX3q^{|U!*Mq^b9FJ6RcnmnwGw80?^_!7 z3@`MUG39Y5I9xkufH4gWNC#!f_8(pN7P>!22yZ$(S;=9pjUp`8t3k zDp-M*3;>oTTnm`G3Lh{1cu(i6%$Kbyb?J|xmA zZL-+8Wi>W`sO}7Y#?bz`00iyMz|U8=6|_QK^B(anE9mG`|3n?!Yc`&|{-%*1n|%L! z^P#N0VB}`w=A@ne9At8VWR?kUN?t2X44R+eQ9U`DeaF&`D419V`oXBUGw5d;{7naKkg-+s39lz$G>R$ssI37s%Y z|DZ8}RtH#mHWsv*R>|CY3UCwIt5Iqtn%ws>rzU_1CZ8g)zvf2@A!f%)26a-SU0^(F zQ3FzfPF(I##h%$9_>4jLW<7@%b=H?3@Q|EF)uL5i7oe-cCdoFNVAcb%Tb>mz9(BOT zPE0#iZ0ts#eD{UU_o^2$(e2Z=@NwQGFirRqjR_QEq(@M)A~i{QoOOVRt_eMfusnoh z^xEm}6=%Z&cS*|aV!mQtAV$HqG|Q(XZ!!V<92M6p0_gs8c8T5zK8=y?8}TAP;(lVq zSnyLek-9tLC;q7lv;{1NUn>e)2#~qmsTJ!3VexST#B{jtANi4bjT99T{vwwFw1V#Ay*-~4X!n|CJk zK%_=|m>*z(R02mt*(lo60|q-HIQ@0ya*`%^NV;%`NoV#%z*YyEFW3#Wr8H<>Al_1y zbx)j$@h&PZYQ7(s#8dK_w@kBVIu5LMc&Q|u1K^75*!uoLm8J@R?-^PuJ;tkqx?d}H z3#U3@5&(3EHyDu-F_=>vJLIj5Dt`AQfKAAyBW&94F`aD?prZCT^T3UbjIe6ZYGGsu z6G6XNihMz(^g01>BSGP^cnq}HgG4-A8qORXboQbRL4BlLBlaE${Uv&!L)6F8(mSL=e`CNGpH%Hh9s2swP)0nC zV4Y|~5!E9zoIFujUh#3?!dqoXcY6CZt4#9Dl)f~(g5v|-_G4=MQ8 zk(tkD-lgp8#?+uIKN7%CK+%#v)2ekd#$S*9UShKNE;;~B2qNN0>=c%{rexqDfKTgU zs65HnDhk$F#m^5?)I$yecT2K{M99=)`SdjmG8IB3 z`8A%kJviYrXL+^h61^xl(8CRWYoCy;v2IV)yQ!E za^}t4BGN{M5;DK4nrjDPTnG4S6SErPPECC(*hn#t$Wb}t!=(icc_BZ>_&TuhdXxNbxthYfNL(t3D!Fm#Vt=4euXsWzhvX+Is+gUSgr=_X5v%7HKNDuRRiCFJ8$ z*P%LkC(*S=(b4=JI0UG1GgUnD4UA~k;+@E_7NhFmy;kpeF%KF^oT7pQL0qpXBLOPh zh)lsjeO9+(F@0-7Fpb#>(XXVwm|!a*<1=mgw({*DQePMJ^EG0qR&=a%li%EptM~Q? z9z-}ReOYaM8o^w2gKZ1HK)1ZdXeKKLDFB&>C1Tt^=dv>{9kiT>ZHJ&zI~+QeIym&n zumXDMOj?C3XyFv!oINc7n-+Rk-?+t<$d+VW$`)NG8^^Dba#g0xOo%>FK`{8sbEgml zQ#481K(2xL#gmn62oYnhmcby^9M`i1#9kawtSTPZ>PD+gw1W`^458w7$o;r#rL^9Z zm{8euM~*lsz@MDQNCG?M&a?ei5)1wGc5k4C_$Tm@XypRF>AwQ7SVqojTtjmJl9;_m zvCcd&nf--k=1F?rB>mJM64aQ~zi}ca0(zG@n8~u3Spx7{(JP#nFrVg^s43=0bFi?3 z3d%fAUqOA-ibYNf8#2MQw0GS_7&+@|GtY9b`03MKq;|LZn%l<7RN24$o}1RrYLXZF z?OTKWW2cj(FeZ10QQ$AuJ7TJ`%9gX|cIN@|A}^nkmMH7m+XtxtK_=q%qZ8c3J7+XF z8owS)>8Wq|8+cTA+Nf^@O=^#_N5@MA!g5{8QJYp$&m}+5OZOXQ)TtUv8p?`kTVd~A z$DAo2vH*;PHYB{$K+mzXLVe&x0@%Dcp&@0aartDa^Phzs5P!XAu1RMn>E&AWF?qCdy zqGE87Hh7Q8yqc)^qR#ss0jAs{wVzWOj>_XsjYGN9Hz$E3SlU7su48r;Q-&fnT(U8H4g$A@G58j4$uIRTi{|K&YZTXhoFMz{Pa) ztSOC;h7ozD-9)!YHj_UIC8TaE?GcK!H*TEXv4vg$-CQL)Cv+^CjRe2~7#}m9gF=q& znK|^BtD{C4`y6GMEr1!Dausd_^^jMEM5N5`fEtF{>_bf$TKpyH(G`KF(bg2&6s_k( z-L^9w;;M`g!alfxJD&GQuO%AJ+na+De-VX7mH8GQGvnII0iz8WXPAe|y`=d=S^`b9{{)?#h+(kHguMqj$ljiB6)RW6|RLwfx2lkq_;s1GV4>n_~Yx! zV(EmaZh2Do6C2t zy8T=Wra1g%9sAQQgy?5;ww%d%aEi4#{f_26@y1K_bRqJ@H!6nC-h(%I{ysLMR6(}~ zL7`4jvm2ZsaoD@h*?OGym9tsqRod^e zUwY7cVIbuTt)&SxN1fpBKA2ZOO;Wst0$wJ7KFfNP;qC^4y7!Ox0e;R-<{}JuljKM8 zpIbrj48kFCs^ z5)2S07c`FET3Y*A_6y9=xnhrR0CO0qRmT)ynp?C2v|`P}mPUQ1vno;W8{r%5%q@~iQsoh`vT|z-qov7uunM)cWm(inMco|K(#fojV|zI zdN2M5m2?2eCJl)pq0`W3Q~gbcsCKSP$qC)~FYQj6L@72^X?*6iuI7LdE4H9ERB#YS zrr>Mhi86{f1=3wEyZUl|aF@AzW~0t*?zZ^h59tauIT2KFgolmxzOUm>oX};#rzx*- z;&ZUarcg+0II&ZL{n6)FH^9bw*5rCUu@eV|x8xw)y-z2h9b~nK1H*4JUz#jDFLh?4sVeVVuD!5n8<-trxx#Xm(Pt(L;UXjC1vI% z0vXorR;Ar3Jb)wd^1!}~qWFefPykhoW)CWB{L`N`VM`HU6=CwXu! zW%q{)t3<%_{AE!D!+0dCo zJgC=89gTOxkIm;*w}Z{c0!Bt^ys@d(+v#&g z=9=OA9Li)_$@nKsGG$>Coy}GN!YS!YhRE+7QY~|Pwv?~IgXAenJoif$BqD~2Bp7&* zH~~y2D|l~|68ZP6$b2+?d)4n?*(w;7&NXY^+el+3a~3Nf&X=8{nQs>tv4m^Z!A(=h z3@V=~ddZXC>zQqeVm)xraqn*%2_%jl8OIU96A}Qcax%+L1@o^MmD_bWwGD zkX)6Db^90Y$>p<%2aK()7qYujmC=Te-uBxVI`O;Q+sVXrMMxN*Ti6UpGjlRA$Y!{w z8>B3P63vJr)AKbD=2-_SfZ*CVP{2^teP3rmJZt1ysz(-nfGKNg7DL<(8Si4_9i$;k zK29SqlWdV}%2H7X3iZk~G1QWeOeIJRyUSQ`P88K_GM69?kuW;!?Z4c5HCrKEx4gQ6 znTF4FpNmZJGStFf*Lh`FXW02OO?)`apE)7#&2P$3yj_sUp7x~H=B3o;&?ckUIqYdw z5$8SN+C9EJy!_0T#`T(_A=GW!4{{baMM+4=;Sj>I@*Epvv?}Ox?Oo zq1HB16=iB!P#Jo*n*SaxX@bX;;M@4Q+2eI*Ovd%Q)!;rzoHu_eXVbVP4?p)x07Jo( zYtSQnJff3m9cjn$1L7&Um0=MvM;>__6bUbH_r#-$qWB;6cnrooZgpqxDqXCse?b{JB0 ztjU@>iwk4xg$uypTtu06>8!m+b}qhGc22%$cIG=iJ^QjxS;pJ3K8Fip za`K96z`?t)KE?wqE%PmFc!Wc$tr(t3jdZTqm1kJ~(WON zbEWWy($ZL6sndQs#>QAU#)ki)=syIcWP5e{=Szq`)cS{kJI&saY_PG7Z1@ii{h|Hk z_uK5uGCkocOL8PD#H0uo49UTa0zHqaa(TvOW^Z6anU#AKDFK3NPLUb3b7daAs)Yxy zI@y)`AxqM?twMl2aV~c@|k5lzzpA*hAF<4wIi}D8=vSe#o3RdhABCY zjgQ8LshJZxn5kOl=2z!w*59tpuS~nZQ?-BY8fKZlcdYLn-)1{DFispV(pJP4ex~r+ z#DIAFVMppm8$n2Ort}pU5wZGt#jVs!bas(Pc>XRX01?Jap5W9 zSJKT!3gWQnqA$eg22C3(^{ZNoUXm$3J?KPnVlB~>F)8qXrRzs`*st5`QmzL%fuGjn;HE_f@7_{wlj#{6q6!g6#t5QcZjn zbPInz{%O`N_-u2kUglZH`*W)Pr+MY8th=ArE?Z|K`N@62LxWv+*2A6M_EDvsCzVLM zdc%>frj9GSp~J0u>-1MQtX?gi`ov=ffPs6U%M9!}Rufl+-TY5JGm4)L(^-b8j*-b2 zGMTzb_$HMx0pOI34#=j|dG=2_DM=2^oca?8%Fq4w0pDj5b($ne-q<7OO^Se5mwskQUxSIAMXupYChrj(L3$s3sl|_Ve6%-ia zt;TYP{|z;ky-bq;#jFRB?ZRY%ckN68b&<`Sj2j&#iDmt%VWOVodS##KEvQ*wUU!zO zk(N_xf06@1>1IVo(mv}}F?P#2>`tqYE5%6ms(6;mZi3Z9u_1-R-Q~uh=cb=mI;e}$ zfUwxGoY^IXJFckE1=>yf@iAuLn^U14c{0*dbvHU3>iuaE9_&>gSS0BFk{+U+I{VSF zCC-UT7Mw|ey!fO-PY9IsP4D@eW%+1{V-rb-jwcJDlyh*esv8hf zg7c|y*VQoRO^F+jcV`KS!=&oV+j87`Bl|QzLA~L)^^=mw~QCqZ?nYQdMPip z&ivI8$**tiNl(nP^li1x=S%-lkhX1qID2)xu$#v#A?|lKVnMH<$O?)gq{ml)7D2J6 z)70%ax#Iigy6adAtamc?jzw)G;58>e0#fk33Ps0y+Wc~5%Vji5V)<`HM@sVj*ZM*h zM@b7V%_=BJc1;b-;kFBT)=>hFO4CNy=I5R4Ji|>lV&&h)E8Nyk1NE2LHf_a`$IZ^E znny1B#=^~&O~r+E#T`00Fi)2nt1&dL(#@5g0*`w&hnF}wG)vVuG*T&(cGu>WH5$tc zCFi>^Ci-<&7OqxWB|4=rr#$pO6($a80!<2co{b*9^@KWi*R{9i=G*c((>ltkn?|tC zA8#Lqy)L33-aL|D(8N#{N6x{X$>99J62STb$AotB4-9VX?|$5X-}&DN90cwPjfVDz z#*6LE>>d#95RDb?%pDZ&FdWp~%pDl*7>$kejU>wXjl_=(AdQmslf}!0kR?>^N*s*c zAm1swVY+jALB1-#FyEctU>q>*VjMK=G>jeh9w#8#!*D>9j#{t_)dZi9@^U9?!c_~x+Yu)T$BC=`YqKB*PZ(T@PYqI@M3UBbW?aRvNJL!*DIHh8<0!N z2ULq+8>AMmHefYswd;KFcmsMT`l4}1>c->_)tTH0vn{**t^G?b;ot=y6-xX&ySDT7xv2FlrPv<^o!#I z>W*$#FWwjCJLE&_#r5F#fG_?x!WYu(%#GftZ}7M17uN^e9pA2R{5Q;Z=!c#g-z(B* zt@<>fJ)Q%Iv^!n0JqpGvUD9{J2imx=z!%hE5B_)XonG9x;49szZ~h0`L67_w)SVvr zH^~3b_WzATOoFSTp82+XRpXt%HDs1Q&0sX1bDNB}e3$>xAor&M$Q_w-&Nq1Xm^4bc z^49e*h$rWwUTQNcSA~^byLsn$=a)e9IIG~=i>*XIcvxM^U%KYd_k^)`;<3t3@ z@Y+fGNrUvW7C4NJMcHrqX8pA{aKC;U85aKB6%{e^qV*bliNInR?$PHqGfl%}Yd>-A z_Pk2>?7rU2u^QoLQBmezt=O>i;UHW}?bWht^EiZm-uAy5;;89Km#>&%3iK9X?|9kY%oi~(am z?+WLe3Ae-Z#6YUn_R9)n!&%~{HyI__zfU+=5h>R8Iot1G2q_9c6XKbuNauk(Z=LB+X!+ zI1p+UBXSHiFJ*XE;J-rft-vW5BtyPYZ-ISokr8g8o%c8j_CPcTrKAS)ypyO1V_?OE zv9n{s*xRuYeqI!&|GKb!V0U1(2z^FP%Dj1O-WD}ZN*giJO?|D+AJ(wJ*QkbRr9P>T zo9Jh?>bmkcE9?k%6Y=iRW0u9*SB z^sPN~{P8}9^v=yswvjWfcpxneENZ>G>pa%r-`kEHt`^LEcQdHwHpGT_k0bbzhxKK_ zV%-R5kLht*PErQ*`98aFaQ*HJ^zZq^em|q}2?zl2^(UXG{?GX&W8!3P_g@L6r1K}C z;CVK##I(>(f>A}R1Q0CH@(IK6_)+8&NW)o$>kz*S%B#$!W2)b~e-e7IwFAaX>1 z#lXO1V%8%vZ`fRBI!pDxY}dU`PcBZ1vLw3VbSUUN_k(34L7w{<)+jXdipSmMM1py% zh1GPhG^{7Ule8{SYiZGKmKfc4TqkW2WfD(bvt(PAY;!kRu`nrBq*tpB)o7&S#JE6o)o&J> zrkf^V8GhLp@?~E{qz~Boau)B!F4u4R&m}GHvaWC_V&3$)THC5b9M5x5YO(4hUQI~` zSIi=gm8#J^!^})g<(*aQtqPU6<3lJm0HRaR{#I z?}2gyw8%?r{&Q3}Va04hd2Dy3xa3uOsOjv1z3_8Vw%mOl<0Y%J`MiywM!Vhbea9D> zU&OE0Pu`D?Uwu8~*JR6ncX4#w(h1rKF|jtuL;MHj8pb{ru~B}cU;GK7IkgJ`*3UMm zp)e|)KR@Gwt(-{RgHPl}=b(ZLd+5jgAV>`&KP6DtP}g&CS>^W zOWc8gWRT`k&q5Of&(dr@p_o!+9#?8-FRvi%>Xrx?5X?EwPna{4mxbHxT164dJSq>lqxOCm3I73t1_Y~Di|kKUyTKJ*^{ zaJWO%IE_aOO*j;|yO6(2z=ug#5?CuIFb?lF%xU_-`u8kK*HN}M_yGW*^(T{r|Ib;Z z=3wDu;z0brS1CIO8v`d1HzSijC75=$|6H$%6}BV+1<-jK$|FmPOH5r*j30n#bg&TB z0|<1C*B;FmSev-88jOVL;GLGR9-wtVbRGbBMC1^?J48effVU=HyP1A-{KhysJ={g; z#WZC?7a9^>8ip3)Mb>nvrE?+&YWlrqtiJ)>rkW=>kbLTBN1PCRzH$6?I)x%+sY7Xz z0ev`h1;KY5Gm?D%5S21+L;Z+>SiK`pFYQu{$VKFf|A33ttU69>^#R1aWyuS%W^(pQD5`_I%Qxs7s4?<2$bRT3 z3?jIwl656fUR4ok7Se>DkpDh}JT5M3@Pq&WYJva&9RKYhRB|#fvXU{dSN=!A=0C@6 zh|ApzS!B7kq@%KeESp{;tv3#s5Pu{H7@S_v4;(m-pPl#zFgK$yXjllbEU9*Vj#~{_ zL_{7HxVh?}R$>_X_50wEGvC&X=Zd3_tFxL8T=#Q@r$>li#P8=3G#{16GoS0FjtURA zs}Y`T0Q${^-$9XU>U7%u!wAed^^D^&#nyl(NEDgE8XP8x6q$l+%5+>YGDuYcZNgKR>cLGEDrk$hO%iBIC2^uTlQm_D%5w5h5?I_ch^z{lWJ{0G zVQfgrWi_CpH6_+4$5oY@L+YED_o3;uMtp>zvLtNG6kJ$kxI*h4yDqq!bJnLzF964B zi!KPqX-h5;$9<&MiW?VA5_D+SP#SkY`}ZZsY6x+yi>50IrKX36tEq)&YpbiNhKHlMG>;rD)88bEHGxmV zARr@W`FRHIMm%k+|uN<5vY-y;FVK6r=W-dDKKfn-qHlrAZ(t3)LoU6%2Er(8#%!X-*xjrq+o#Z=~Lw z+ucFQD4NQYPG=o^Xif~S0^N&P?9xKFKkqs|>L7Z0e(NkF5l0DJ1cyyam?*;%g$oEQ zKiDuJNEplVJd8^W4%17Ru}mZ!A()TBY5Z*6T&c6BPJqEqQi!`5^cZ}og5z+sigGdP za5qHUn_2V`SUY&WT%@1~nH_nqNVbg_)wWD02XLO=48Y$*SfV{WEx?`)n6$iZsUqHZ z`9~v3lbdpV&DxdO&d|}CxF&lamEwW`O2uO4`7&WPH>!2r(Il zVAQ)wbNr&Xv34>IBesAu|Aq1(dpoD*24XC&eYC%*<1WdZhvK`6^H1a8 zE@cnmcIGH_(gUeVJMCa9>RPQ3;PH?YltTlOk9yPzi8Oo3MV=xS8Fe;!$VCliVYLw| zc|z5~7n<@Rm9ihDv_mXZn0wLeEZE`7Y@`fJdsH{0L4oA7DrRzMFmozTd-br@VKA1r zH;kLb&2u&eZXu^l(Nr0jSOqZQtO*Gy&^{5BO6LWS@oRPIb1!$pqnjs+$aL3`Ds{(Z zDmj?C7`U2vw(6{nl(>~v>M7U^RGolg#>~M+;CU6PY|YHGKL?M3jOIYGQ6q=73}Lla z6@^_WE=^aa*im6UC+(?Gb&Xm|Ma~PU;6KOaj@FH*t`_!LL(9nt;1F!oQT1faPA?d; zF)J^1l@KiU)7am`lcNp9*cF00$4lASi^xKhhp>z&l(H%ijS;!9E{okfG-8qk$7)=# zOq8hG=Q*gd>Q{4$#rkjQbBIuyYXx-_mZQ1Tpw47yro>~Gg@tC>695&IAo96&Xo7S| zD&Qm@mzTu`>L@o5-cEKTuEx$(DQuY3NDPGfMsoxr$ta>H9foIQoUJ(Pq2*@7gwIjB zn`jugCFY^PB-M>4%DFO2*F+ubd1T0N@jaA@Ny{V!D?h|}B)uK88Yw__p|K3O>&qFO zZNsXkdI4KTbnRV)lx=hnVr%S&C9%(=npe`-74@zkUX=$1N$Y226Z49fPMEnG?c-XG zQ|Roh9Y8%)fN(6B!ut$2YKAV`qxC`35g73y0A*ZZr)w>(!eW2s4iY_=NnFf*iavB#FPtf%ze=7Ng za!h74F5Jg;^=EcME=2y62n+;RnP;Z{^nF6S*Sat{60=KJ{)l*cJE^z-99*qORTN#J z$~U{R#35~3ToNl_NQxub75Aq>Ee1jL48AP9P>KBXzbviRYgolYfOz73Pt^Z5sbh=7 ze`i}L!Y3N&e*^@`}C7}M9=xtF~ z`wOymfES8axN}FN^>;uiJlzYx#%hm#t^RlO>dFO{b|C0SaL9IO;c81O)jQm~;;(D! zC!Y5{!>#Zn>tUMZL=b9I#@Zq13dwPgxj8IgvH?TXd&U#TF#No; z{1F*Rf6jAGl;6vuG;(a3gU4fy+!{I7!gk$ar zjcyLyJk%)=Ge%J&IFbTTs+IoNDkfXyj-Th$$k}P3j>x4~^VEl91%+I3xN7 zUwB9Lh~ zUJ$H_O$b1VzR>2b1<1HO$I9n4Aq`^92^xuZ*VoONbkRa!-dW~+MI4UoGc?==nb1n5 zY4Xd%$H6P&T!lO6{8xGWlP6K1z=ylxprXoU-R;}w4n7GX2Tpf77)k; zX(knF$oJcSo(SL(8(;O+WE~@(QBVt@Njz}HGR9ltaX_^?Q z3om;~xg4NELTeB}i3~f5I(SGoIGa@s8gp7=QL8O@w+pISbi)$ZXDA3VyoWqa*<*$k z3q2VOytCIvI<2{tM114OP|Xv;KFA%K%n`=XZ9K_up)~QVetw~B3&XqwVrvrs$&V3 zi=Hlo8Ni4sZ5VZwz9uwh7$(l{1NIG*t)JhB3Yww0&wig29Am?vst(9y4;zZ1?{nAm zrOV@>3&mxv)t~{`<3$GtdK;_?XdW*Bx?e`6UBz<$KI`d{ejvoleaIwSl&2o1ea+rf z+zv#~Fickod%mvVkOv$C>i+K2!+^_JrTY2TGLS1sJjmL!kSq0vM7t!s6uqrLh9<#C zE6N*2N8acvO!4p~{ZcDZMN|ht#APW)_N+BGU}e-Xij7HcJ~nf!%xxRE=zwhyb6Eg& zX*F4Y3z4wduk~F4SZaSRc~JVSlFBegMb}+(9H~&-YDX?;Rpq2fN)Jpos)HlcCV^?0 zI9Zd}OMT?6V)ONH{0Hq9d|=dOq1viV*3p5a-=JL^`7;Bw!QSyJ`klZQ!xM2PodL>M zfqu7?(5zno!K=KRFNFoNK3od{5wjfbawPIV~n>+y<3_$4n;xdL5H>Mvu_!!8F*Eaj#pngl(zwF zV3XYVV(KOYa|G0R$&*cPsq6$0wS&gyKQFe3K2ys9@SWgPT1CWPZV(< z&Xptj0qg>Q{4kI@>3Sjr+R&esuBP?{j}R~y@1~hsyjtP0p?|Tj1lJ5!t6s5BK8Cz@ z2+xiIgB&0H!{U!E6u5>{NeVObnpj&XPpW15~a`yW5okdTj(oEm|bbPdm3+U|kK>;xuDcZpS zft$s+V84!dE9nV`Tc3tG7cN{|;+&>N&ML&IF=|6d9Ll0#yWY$OtoNO_gR>yxhetGG zOvA+Tc^Sj?5t-{%^f?e67+fxNfSkXy5B9^}f}RVhthPF6FxZDyq}I$R)k@TB56kHk#bXalnC!e6O6}t`|W+N1buKWbn*vs z*&d5M;IiCN)2|>g?X}v$wq`x_V|dw6#dCOCgSzu2T>%aSVUKAs!mcu)`?!+yH{EMN zn#w_fY9P_coZ^__ro3}(sIwI*Ntghj5F243ZUrm}miV%G37D}wy#yF$s5!p3SJ_|4 z__hIFd}Q{eKzR!nxb*QtnSBKgi<7GKOQ*T+^tf}m!vnfMv7+wJJ!HgRg1O4&3=?LF zXw?;)ba&qD)?xBN&L4p+2dp4Np--tP&!jm_1?6Ljp?TJwe-A7*s*T=Y`QRwXIiYJl zdH}7wFuPY#5#Yr-!<=~0JnS6z0{GA--Q4Q~>cKUk1}g0rd_x%l8md7L^yL@lhcu_k7Zeu+{swagP5KaUkF({D^V#Ra zVhi^M?wM?+pU^PwV*YES?kBo5PhlrWgp%L}JYoEx6grnK$U5#x-?(yEbsau3r$JgM zt~E~A#!=AVK}{E%AO|XUE4%?u07G3%QN6rXpi#i+n*uVP5eKG_NrXbQY(yNwEEk33 z@Gl4HbN{X}CGdo@d#yRsi-4RD*3sjRU2`8U&Nwdlv8y1XR~`EF-!LP$p4yemNFlv= zC?H|+Ldl_j-aJ`1iHxQ~7u}=UbgGsN{s2)KW3+N05y7axr9>vDA+lq2VTyoK8Oi?u zot?^`=%A-VaK*_}(r$e^D_x1;N80DQN?9 z9G)jZTtTFwLg-O83!^@oNsbvq{B~J34*e#xJ}D(*qLmj~sIEcs=Rc!h(%{8Sg6(HY z$$qIZNQug}f86;1%-dx`F?L}PBVcAg z5;Iajb;x7-x#q#S12o++K$GHzc7H&iPv(jhz5_<>))sPif}niZq|N;HS9pWRKXQexuU(Ad}of zUu28uf|kZWpVy07S)n1%E%HU33?+S`EA}nTYwpQ!yjNbd;nL&+YWkEZ-bd@NyD4|Ii3sDhhRnJXFtH3XL8 zyfR_R?_qk@aAIkp((be_u7~8@0PxXPayN2`w8FFf**G!a((gHLa%#=hdF{3jhv)&y z5(cIb{1pr_hR-u%ObTMe#9A;fC!JFd=^;$;fGU)iOD-F(^44+7?>i#seu5R#ut7VR zwYMmlRB}gSubm%58d^VQoHR=4Y#Rs|5Pf*^VWt?#8YBo{2PO>xn~#rg(2RP@V%`i{ znV=5Cza5AUE11`TMue{v739SL2^s+(g*d`rjt;~$s2*(dV~+v8ezz7~#kK2*97-vAMX&GwUE~?wKT!YXqZo z<~yAQuEpi-O?EyLR#p>w!9#k*P*66^m)$135p1D@9hENNO|P33clqk4OBlPD*UXHo?zQ!B;V;H_q?^)g`wn}VJm0ex5%Vy;zLDe zC$gh=h0C6B2sRP*Q#j)pio$q;lH@_AVzC8>_m*$Ns-R2Nv5lL3PJ7=;n%q;gG`ey- z;t(Co4vdUr1^0Zf%-)Eb@mi9q`W}oH^St7boA;?$p8#eg%u7g z7pvibOemIVS&ch;6}RC4N+{N_iW&nf7p>udHym3PPD#rdq8JDfuq7Y1&uob`eu{HYwhS>&ov@jg0RPjq>zXE_aqi8E?hB zms1vj+&#%&8&F3sy|>Jh_g&suF%rX`Hei!OHxs&43|$c=r7Z$1vLk8Y!9G|x7WWq% z)E4)+{;$OrPkZ4es5^}Q%#&V5mrbyuYYPubRN3+w2&3kK!Npr;>dI$OPUn6@yuaJ! zOHjw}%wCx&k_x((%?x%P;i6Qzn){)h8CSP{kcHHLu3^r1qI7;)iQ9cW=dlbx*iI&UbVgpYz1#9fut4LX& zvP-G8>fOiREH&*w7`kPw^qt7;4Cf@4VUFQTzjMvVVK|YJKuKa_eYIOWb&8XIlI;@p z%hOR__$+H1yL7--$(_nbwlE_N`_gH^)AqU1XmU`Ri31N;WZbQ$9qIu1lS6j!H&CDO z;BTcD&o@tD;VB1SSs7bm<4l}R+18LjvXx*!h+$wvLnLvkOO%sfwQ?oz$QDkrpBbFt zx|~1x*y5zD9dqO&0o{p{{PXyBMv0;G%wQ`~JW44AcqDao6~R8dpo$g{Rl%y{V}Z?q z+VfAi>z2M!3|`ybYxdnCu2i}ig`|hl%-dOICg)7U+SaiZin9qTnn?DDZPL|CmLgkS z+Rf+o43nEhtCp9;o7Oq@pl!NV^K_`2%~K<_nxYL;U8>DjYS28JZ1x~7O>c{yJZ}SB zI#x@!h_+|fhcef3Z*!i0y~ukCe&~3rdgXWFf0cXVcQ5iH|2EePvumOoa`nh~(VdBt zz9!)DpesKonV%JtsMRH1cnD|I(IaPiKr(5@P2PGuWEA6*dYYX{c7G#b)a#LcnsXfo z>{7w4{!IaP@;pk|C4+hnH)`Nfie1A;D)mr$2>!{zA?d3T^00Ei@P_5k_!Wa)*h4pR zjyJ*hspk;j!!OG?Z_>t~D9bQBT0YFqF_lJ66*cA%qCh|uEy*##t~!du?4}(OjdqB*kAlIl9jCCb)VBEYe=&AW!Id!47M>&% z+d4@mwr$(CZQHhOV`3*Kwr$%sCc1yseY$VAYFBmduIlIR-fQizh3F1>P4I3>aXtLk z$Hd1M-#M@kj~g>*QyhB)TJKOBbcodNxqw;h6RbX^I+OGXmv0d7xPHMr(YGn)k7}L> zz1n%RuVb)p$qz!`L0u6)ih5K0Y3cW~$LOE9K*5X$szh4$D8C0QMgcu)m}4?V89j2b z@oA&xF1?s^_6VnUZbsQ13bXN=A}Kr6$78n!jT2|$RC||db!z9( z`U9I|;1(@intKHGQSO12XZjk^Er#|n?}3?T-CK8;{ubfpkZ+^zRU+O2@_T@X)D80N zM7L3|k3<(O_i*`x;eD=;NRW?;)q^ADF)EWXALYkH`SGv!7yw;V z3%!(Kdjb9@Mxkv_VwoU$l}#xu*nFZC+Y)Q*edae@jS+-d$UDwYyoGm)S)H!PFEFMz zj#;=aL_g?l51=`dPiR8?>{H4>uY(=g?x0?Xf7NrINqqn6S~jhW8<|hAb7!;-M!0>$ zH2q6)>%1?ccvmbtOb6}@QvLw^h25I6*?`m=q7Vq@uYo(fnKRN!Lnfbih1#4r{3pne zhqKzm_QXFX{7vR#xYwOIJAZu<_!o5L{AIoI?BhK?77-25{F&So&OerkuBnG`ulH}cSzzUd`<2t|lD7)I`Vj2GV88Q4 zmXYe)1+#b|3vjb0$Y>Anv2wjoR#83+>s$|xPioS4SpK8M#wwu%y;+eFil)Lcsa?_KabV*r|g#K zD0biA>zN}We!0zQ+SApF@5dZ_^mPTRsbK2A<6%8`mmEO8Qc3Q5qgH9nRQ@hqN8EoZ z<~RS+I)%xJmnN^>x<+cUzBq_&p~KCBFv$Qs$Rsuz_H-KZNxQR6sW;l&XYAW}K*yat zb<~mSsW{KYW1iZ9MVju|JnuX@I*kInELj%&thEwM%Y+d_9%b`C_SFZAn|J@5MGJz4 z@6aK1;{hsaaJ$8+#>{)g7Z8!~y38u+e+v*)B!F)&Kktsw@*QnPWx_99A#6|Oq%cpp zu+O;6GE5%dLx{wcSY~MbBRdP<@vBSkk;BnK?k1D)lBFmzpV9FWO|ZJ`T9+iNkS8>w zyU7W!o)uqt4J)4FV;JLs3Cr@;jhq%R`&=e;%7|WMPzMbIq9j~PT|tP0PUNU#bUWid z5wB^`aTR#hrRVXwe5?<;{5OySU>gK^y)%GKofc`HEE*@jpfbP=3pk;|G6b>gF**)V z6y)*JsdiF<9%+5<-TX7$?g{{@9=6U`z*A8=#^3FI8O`!jE^S(_@q;#V+ zP8X7Yo?R_Z`pObO+^MpSwhe6`j)x22QSIY|%Kj!i=3Lr;pdfj1nfc3bv zx0y8z{g$^kuMc=@`>#r)nr8=}mcsSC;w>K*K^L6aH$x!!NGhD==y8HmPqqvO5&`ag z!0cs-&c`mbuA?!Fzvqz@($u0msQ(egE zl(j*xCtjDST^Qmt?OiG`ma!?dG_zA9%oBH##k~pNjCqp%R-wELL*5oYXBcLw$qjyJ zUGYM*6GKitzjmR3-)H<^W%;AfTg|o*V?}2~BBn%mz!FVO8aXid~rwra_ZtQ-yd*rxd;l6b!k<^qaa=!X;l)? zxhD0p7=}E1jNJv~7k)GSSAiKSJJ!|Qh7otSeDYPtn^Lxw(x2%ot9`j7Y$lICaO8y+ zJyG_MnJuG`i8@!+zs_J95a)(r4ngP4*uLVZkMbFyX`@C#eXvG|-dbJm{|ruqMVOD; z+z$fR?H-nnII5c4^uY_u^bdkQ$!3`Tbe00B?GtJJ7lnNENz;E7C>F8NJ1N>YDQ0hj zQce|eV7NP3=2k;t(Obix;2OL;yiVNzEc#&bK6qEa67*?2(koc{MReRL!oWZ3;+%A{ zOu1WT+%7Prz&l&41+i4*E1|iatm~I3Q;vt+J|x_RC!o@ljK)MG5X0mXrvHRB44$6F z{~(NJ=(qD1a=eA3LSKnB?aQ69Z1l%9TehKcrMBNs!-zXT;zt?U9ZlpXDsUJ4Lvfm_ zGYELELmLO26)`Ii_M@dFOd;DG5%OzOE+w4RQl;aVmw(!X#y0vB3jRzFYMv3Dnp1;8 z%{KBpd$u`qzoBzWnjt$rCkM(~^xe?qeBpQRBVv(!Mnt`U0gl1bn^25%hvJnX+Ogmq z7z$dqqbR`Qj7B+77&hRg=p8w@=~lm+eIg{sin$XrPY0tFy8evZ{Lvr*JhFE#n zB((hS-M#(zp6F(FHanT(G@r?FHoNKSdKqq-1?h88%muZ-hw++bzGuyMf~8QGtfQi$ zD_JG-qAgoR@uDqVW%8mecf(Y?F+$xrO!s&%B{R8`hH4Dba|%g)sw`BmNf(zn>%Tl} ziTYDTsV)y>ed?GBQTGJf*RU4y-;t=J=+5f$!7H8C+c6pt*st;hq zlGXDALJPl}QR(a->oXd1^oB@m9~^7L_e_TvhH5iPzhUiI_ZmbF0ecoz)bH69RUYY9JdrSHB$-E;s2 z@5^L{=*|Cwh!lUF;yt&Ai2Z38?7zJi4*wm|Pe6KS{N$Bm^7OkqkL67n!hd5=9BxN2 zh}Y`QSmhqBJFj%rF*v_Kj{N)?&@JaF=L`41PsJ-At5>iU4evmB~{Tbc~-bYnF?Ww-U_x#JA=zo8Q==qZ_e2eAsv%c@X zn?vLa!+ixW-4gs4DzAw5IJLAzN6ubf$yry=5A+gMvkJbh#)OO1ja@|9f>x&1uG6N@mD!b*>TDud zZ(LgfY=iPS`}AE|(jNnoA^Y zimqHn6r>7cU$c|~T(*wvSs#*76m~tVESgw3`8T3ECI!K?n`s9DKFJ+f5T>w1C@PwZ zD`#tCyAwjuI4eX*niskEo0AbL2RtA~x8wIZQ6^?A z8^f7Dg4TA;2&Ing^fYqLpv2{c1#Ph4=>@j7j+^k+6>&`wb`pz%rQEX^bbSk?bW<_w zGJFLu8M-My%@b!jm1?yPGY|;ODoGE*D_a)Fso<3?>}p_L&{5YFzT7J42)j_Fec@59 zskKiWN@ZUWW7|MUqq>HeKu5B*u8l;3WqGV5@|Jtwk}hr3(P9OL0HvLtkInf z9-MgP;AS;ty;VwCJDUB0I3w|0N>EKyQ}=cI-ZO!n*Vom)oZ_WRA=yGT|NGp)X2nuo zUAAr!*-Vu?|3LjWTF)GFF(FQ>#MreYZ3`keaC}5UEPKU5`KDeMy{1}!Sz~)+CB{H4 z-b$X`3w*upv@ z;$;nov?wAUJmI2!tM^dL2cecCx;fVGX6*>6Tg%pg29wmlW_KEkF=`xtleK-eOIao? z2L_!p6ftulQU!J`q6=rG*4ZvwBUmNwvRY?D+<*DZ_JyExpR9&wUCe=5;bKBp@>0@V z8>hmu4zXkrW24|FH`|sv8Qdr!9F%FHs|#xihfDNqYwGN3JZ&|Rg#r&j7#qQb2bqCa zQyVMJe8q&LK!-}}pSARDnUV_IA8b6{@8d`^$ek*-=W?7*&Yox%JBgP@V!f=&ZlwK3 z`&Q{cjsp!z8;zR%WruF>A0^BtnT5Q%cs(*-tK4pxgJnx=)L&LLfBUm4vmJ8_S5nwl zL>pR^)tJ+WS`4Lp@wC+G<5=oyOj#rCu@k2+72DxbRqQMDwc~3%NyU`&vRY3tm`JxT zv@s4crrC-`zHB-*mGYZp8k8bOf?O&CF#_PTYYbBIPbTCYkIAcefB{ZQAl%&CdAS&~ za*^ibo0|DbIaKF`qI?bHY)S(Awwidhb~Sx~aw8nJ=D{2IXAA0-9-}#WoFZHWrm9Qz zd8f#PR7IvIHq|PivGe%DcwFj>(rs&N$2${d4`pJ`MlJdl7)k66?+9sua1{A z!SZyyEm_U@G9wGwL7JvkYV!!PB~@gq0h3g6RE(vmZ&l40uIcuZ1vSv2d&X`s+bY6C zJt0pvFcwca85nVYRLn7$2;!tDx!^jeQJhoHYD-I3poeQ|QPXNGs=CyTZ9u*JDMbMx zIT-Ee@S7&0StM)qkPNavRhG%_A!#@%xw2(!2z6Lh`i)nEm|1ge@t!ws$SYx*Gh8t7 zML%*;;HRX~@3=^XQPzu6y~JFyuN19Fr&5LyTjl&*fztv3fLIVbD~5?Ut@oLfbTdoI`rI(E2Y-3)|!p zH>;HIgrZ7?fVR@Y+SW=qRj_h(BJ*DC8kBDBC>ALejc8&h^8tgK#C@2uXT{>YY-P-( zlk{Hx#i=IBCT8Pe#i~>}#S|$j{4K82byyT4Etd1U4dQJmMP3*N4?ZQ-4 zhbLq9juXP7wwxPZW2;`+VmqAG*h(UGZ6r2BC#jK**y9RSX$)*{s7)zRP+AmwFOOIV zJRtIBk-)a71rUul7eiBwfsY$gZC6n~WS*Wn{v^2>hEVT_zFZ?xs7RY6NRvXo%d_^T zG_KLk=FPEZuyOmoQiNYqW2azF(N2LPXQ>c;d7%i>@O>pr0H2FPw3wAed^tWWn$4yv zN=Z}M5AP!VV>lSb2zBc2Xe|Eu7&~~d9j^RJsCy$gC3g?>pcsuVhBaAOTG^k62FHQV@zWs5G*5BYu26O;QAtyjdJH6oHM zlJS7`bUP82zwvS(-E+n5H!uG*nu8@!7wD(f=Y$P+wg63Jh<#+ft%(TH-Q(l<{x0AK zKEWjC;wda_f}S<1=CV}l{2c?F=h+lIZV`L5AeLKX*qQAa&3j^wJ@?~_Ff%>sZD4` zlLVhuVBK7C^6h6x-H# z&UbW~J@hFBoiTIwAGJ~-R}{_82)I6>pZ$)>^ID-;JN*W;0-QYgnuGEqQ z-K!dkhUiD;t-B}$5l}a%@nYN!xFZI?o;Lbx3s;~07zJfYwmgoWul7=naFfPYKd;9*;&U8ItrvAYuVBq(QL$1$5E2kzx-a%Izf&-;v%q#xfTjiu_~5ZQ;y!> zCyP?_OrNq2PU{*`_&K#Ns}!(x>=5rWr2;cvWqk<)u|$M%)*PSp=v) z^%SjXB5jUpf}qK|PCD|-ZVAd~iT)%CrZeV1iD~@xAmakqF^>h4B(LhgsdslI!obgYZ zo1s@r;GdB~*>;6dV$cy%eybBHjlM!)pO6CusznMOL|^KcS4!Kv`5k}{K{rDjUp!a7L(AGtuaxR$dL zVLD091oLH-#IdQT)JoXJu^HGp%qOcuHk+YkJSwn0E;oPnJ4I%Y=p*|t;(S}$C{)v` zqPDfKaN^bp@(u=e&_ShozN5~LfF|Wa3OMoymaUVtO@;{pCuF|yB(6lCq(1amlMUrk!PGE~S{d)Z&23VTD!v4% zFRGUOnJ*?^x;|gX`(S9iVCX-=2hTJF1TmPVei21=0?ywC~qSd@9w;kv+D$6biu?~c%LK;RA3 zZ3Ei;F#yD# z4T%x-CS0SUO>>t>M=<)K2yp;Cp^a&~V}s}VaVJll>XcMU9b&;9wvo)X zFfCEMIr79yc)D8UH8h}}(wYinzom`1wWC`**uS{dAZoIZW_0o=VCXKg(e)0a&~M{7?|v6xOFdB?co@TJ5^V*XDk%fPeI~Xlt(&a1o0PXg+T}DB^Ea zFo#qUqm(mYcovqmVx1oFa!)N|1FjV?t9>NxiVIvY+OOe%vcs$cmke5qw8GDAI&|16 z6-LYq;)r{os{yM}FoDx1O=$AmiR6g76w1ulR4XY&;Zc&Tjq!thr69Bgr}&|Qxn%6h zaUSGy!}ul6^l(9)B(kWsJ~JvuP3uyGkL!Tagm)*e-!Iq0Cq{C@aO>5e&K)Ioc||v> zL#7FQTubK&uK1Ff_;*OAq&oomWs?)*RHPL6JrTH@Us~booI7$QuPG#aA%pxeVE%aj z28i1m^8zUEN=ys`c`F77RKi35BETx6!=_}@58DrLjK{=rgiD+8L;wl2`>6V<*DIaY z9u9`u*B>}+JV~|l0@NE#kFXqDNp80jY6uxyV@Pax<3qXvNV+0|{ZZGwz}LN=ca5WI zT^f!Z*B-cRu#;*;e{k0>0&UQJu(kO`gm%PGcKZAMLu|U^ZG7+S8(Z38ZD-<#71yuK0+~P!aTHt&6oB0)`$#9_1ROHBoF@dR{aN*&N5%?E*dLpNaw?E79`wNpBa}9DL=z*s z8%}_M6KrI3z>WYJb4UX{%#75VJY_;HMbIy`2|cJ<+OJw-L^alEVL}zgV{TwNA>|RT z2mC_njLb3HKVHdg}9Y}s(r zx#NwjOJd7)0@c>hhVxOsl(!iL=G<+o@**vYjax&?rB6~7J<_R``hV>_h%QN+BC7&_ z166_mK>#6i3A_uIt-L6guPOX5P0qfcA&`_>w2$WieJUBN811Xuq(BNe*b?y1@PbUQ z-wRv?51thR{-o!e=SCI{smZnQv@>IptKk^tCnert7>itwkWALmO<K5eVTmNUbKa) zN?x?ZQ3D|qn~X45oDm0|+#ZeuiGiKrzhDhrc41?c?9V12<|Lj1iMH@!hVc3 zbNFM?L5FD`kp@dGDAXE_DvU7&z;MAX*EH6~$ogz;$gYHyzkhY?588n6gh702y0p+2 zzIuWCE@oTY@Eb_)y;{ui8&5juyC6>*rPt?K{Dv%?#~!a-_h2Do)_|`vYJrNZSFMh# z8GeOm&GHRhZn9p(aYOBl+3v?#C&Vy~uP1YhsWIN|TiG?cTt{3ZdqL>T@$F-4ieE#& zVqd#_wSoOW-JIYvR5z0GMt^O*=1JC_c3x-oLF!D4H(0%wyz=6U-tJ2`)|$3EsaluY z8L->eUbFLq?@YZlX}j-SyZ!`mgY?hY9@jVUew(zR_s`uP-ZlAnv`~f^LZ5rA%uoAA)&lj;JR# zg1?=G&Vx@7PB#&jjCF6bfo1bv@;?froG~1+OT00D}u+WSWOV_-|l0jsDpZA z7}$!TJ0q_C8$?kxs6(X5K}oIQ zOufIu){Ashx_mRyB*aY})ET=-$I%4$MtTV%&?onTVM>Lk5A%n>u9;>`o*?#nMRLZr z74Wf0Os)3i+SCknq1vSxmqZbb8OEwmixts{{Y}%6m?AW+m9!%iG6I`%Vdg5CKR{U_ z!m|ZtjBAw^>r#d_v7KAkAL`dXFU;eg^omT63z5HJ{a|lKFo5L^12;l|XiLfF>&GNu zE_&JP=o9b+g4IqR;?HK8Q?v%D{x4_LtR+tNg_l9d$q8#oh zRKkTj9pS^qq_@K9GNouTK*|vgqDYJ9$LYfz6%5K9p?hMa@6fk6x?l`nY<1k~4wJmW z+FBW_QWQ-me5E8UQj(uoEeT>n z8_)3JaY7^^iclktAb5-h#b{d$h9$bI2+0G4Pv^s40;iA#{DIbtI*1*8$NF|Up)nExI&5ejcw*{%5NWN*Qq{z5-faq=EnX3>a;T8y( zWgDu_aOS=2rKM$Hd1sUCfR>~Q9qriGT2Ki}G0c`-Crqv&Q_VUu*WB{x8r3eSC*toOgmccMS6T!X6m(d%PZmv&X`o_ylpK z$XyxnM~80|euMFIZ*P{54%Q|kBM`1_?@(AIRP%5Snh5WCZp?|gjGyMw29 z;U3`rDYJ+2_uyT@`V;zl)NgGbtUvfKKH;l(uO75N;QGVOJ)J!wD5b*Mq? z(QrM4t&@gr1+p7rWhuO{+v}+d!#qK5=T#`J&=>2fFO1=1E-@};jS?xFbhJs7aF*F; z8OGtpdijHX&BYq1J{nq$rUpOaqnyD3a)Tw?0g}z(1Ll5fiy*Pr418Cq=N0vYi$V3K z>QAuRZnCrgO-w^*8+~>Pc-$gJYHkEJ&>m|NX50E1{77T=^+RFbRTXC120?qk(u%z+ zPggr<8df+k+~GU59>lwJiaj#pRFZY&5VhA?4D3DsAjxt74%-SKx2}bBf-U&czSIjIv!>4mBJWNilxZmN32b)fx0xH{Sm=4KG#9@-rcIQwvj`T3=HWItGS z_PV=wJAn8mzX$dW@|pC5_8k_ebcKa#dOI~&-k=%_#67Mo+mdxs{a{GgCA$7Ky}O#C zfWGT}5%Hn60*%RQtDiz1J|HkRRSbNNBwIN0jYxrqOEW=!hQ#CQHf9LK=MJ+MX-|1v+cze8?z zz}A#26-wXl=ko8xKqvGWAnVfS#T8Ur%zVXI+&m?XHNjWE`)AEHV+F+e=W|sXZW%0mfH`i!w*v0PN>tna080fD8{I1w? zP`OaLwiBQIJcl40s350<y)si-iY@1a(3Cac>$_6fZ zL81?z)mU8zpc1IY4meT{hs+2N5%&&(8Bo$9*g7<20yP;hmm-`tNX&*+8Q`14Htk|l zq1wYfYt)qny&5r#4RHAAllz=odJD}gg%PWQ7@c6l8K7-N>b=S*3jaNFa-GU9QkYfC zk0J{afV@tXT@EqVsmiGk^7WlZX4J6ko*zdlp?i9qi7cugc(eXcj7Y7S{kr|Z3^Zew z<|WecylTI1L#qoM=}SU+`_Vf|>iyRmgEC@Uh27ZpS02W^bmg^Z`EDcRu5@_N7yb}$OKEaKK)NB{XtqaIJ5m_cfSy+Z}e`;mW_^DFb z@jed_#xT4UKHd9~8W6*xzbe|@2SX3=GpKG{BdxN8pIOK|)(E2M)_7FtxKet-2cvpW zO?(I)il3GvfrY^q=g3~msF|D6ENI*JQ`dO)#5S~|2Nukt2RvCo-p7k6Ypy-5z)m_% zR+56^>N@KC5N8Lnx&bk~wX=Uyxb=!_S~0XxE#-KP&ew>r!cNBl*XDXEw)Rt9(3>Og zJt3`q2MlKi$n`_TNJ#O5^7kCShZ)ak^8}y0F~Xt_D}u-qev%c)JBKcn)R+}uU<)GfhC;=&7qkI?w~GeI@$8bw z=>Rpa>g&8tE8fDe+$8B%*ednj$4aJGd~Ur9A<$AlWtF{`mO%vN2h{4fLhB->975%s zh-(mY-SkR^IXLaZY9p3(cJkW9e4(hfxzJgcyUc3cnoh{%{cIE61h`#$90*lhS>uSaQ*Rp$>R&@(GBB`^sMsjqx zbuwXI{1;w=yB*8i4##MVeDTo`tf)=s*a1t|I%*te4bGJN3U=kbS#ZfM*a_v+As`zx zW2+|uiENl+7LNwiYy>0LsS0JP{VcY~Q!8ohcAZm>9QlKJYL0^dH<4?!6A8-%*b4*k zR89Txu!x@GJh-r%V8LcVZUpXh{7~J@HkUp-k{>ndIxsuoL2qlwEjev=m_w$$eG~0S zg?hEYFGAm~m&ZCg!KxbYCv-h|0qq8y;zn+YoixV+@$oSXMkYc;9%Y8V8fJR zUH>?W(~=}9`>lFzc*ZMeT1 zaypcq1{H3wXx5#DDxK)+qqe6Sc;vau_gzg~dJ0vCqNh)Xf>+^kd7glUFX)onYZ}g z1P9Yw@${h_U^8=6&~aNq){g?@I3^#Rhq9sqqkVh@-s&8mL+W23?A^+8#}L-X2aA^X zq&6}wor))r3MY_-3Z0N<7Oz5~Zu}}%*A9^{NGulm;nXeS`}o(A9zxzQJ+ayK`4+Q% zW7YRv?-F+70c{6U`#vIuT9=% zF11k&SH*$sQ%^{DUtooCFW=Zm-O;t^cZZ+QWq4XldKj5nUQv&BUr>+s?tnsyK!h^%@cv)Is1DEs==*i0a#;Emfo)p=&<7qWBA`$TiwNi%_FJ}qNd$Eo5c zt;ngb>;9Bj+{q6ZFwJ%tSNwnie`026$?v2IpB21NmY{qM>Nt9{6^B|>Rk?z-HbJt8 z5qatrdg>K>>UEsI68q^WdWV0(3vE`FY~9mI>OQp@A2HXp`_;l<@cSnMMoUi}lTWgy7Ml<$~i@mKK-o1RDWy{r!cM*-8i^-&Y?q>8=W2 zC|n%SP-Vq!er;}-pw4zMkVqJs2h))Uaqh+CvPe6&%v=zk2W`j;8+HzYRs0$d>4h-0 z;4PGj9}@k9v~=FBDBxKS{b9TOG2qsnkE-MnjPpXK9RWHP8eQVyat0<{;=x0a2lJ8! zhhAwA@VR4b;8*BPa=HjnO|}8-xOPS0&XT#AAp5 zhbFQ3pCaerukI<2u;2gn51Mu8V+JXD8424kH!LBLzLCS$@!-!f$Cyn0lV+_TQ;s0h zk*PM$&?($Qpz)Jm49Y!4x`qC4k;eyzE3o$v1teonoHyXdk*^FGtz<(Q?%WNSJe}_y zr(w$3i!7IJNQvhBIV31hypJHNY8r^m|kHEC|m)Aw=oP1pns4rp63T8it zFQd$AdLO_Sn`SPZTOA*^0P*9m%f(>{`gjsq(0$}gtB`$E zIdUZ`rjdSrK}9&K2c_`|M`cqBt3td$qAs}MpB9=XD$VL0FS@{@$}miYzJvP1+x*xcax-CG|3p|v{eh;2$m}R>dxKRK~$7O#3<`cBq&WcRI3%Q#Rk%9eYwJPweQ!L z7FMM`WbxCbVUi!1%)EV&)R%R=Oz-;o?-(TztOno~@~D&94@4!djH>l$2|s6126u%Y zenUZd_hvrApUmgLFV7qcA|B&AZ1NUt113J@YSZwV#=({5!IhLjwR6L&hk8}NwJc8! zsZ+-!1Q!^x>3)VO04VXa5CvPbK{Y2}B%9bUi4#X^8rGna6T>XyP)E!IB%9d((s*IE z61`>k;a1T&x?ZezKWvjW)thk2fry`*v^UXA(QPf%{lEmyPl)=Y1GwN*l)XLDiFC zI)qy_fYZN62DWgY@-80u>Qp*}d1@%fGy%{kPqFcd;OGYDVj-lr|PLs z>@DX%P8Q+xId(^GVtvg;!08DbvOyzJwPLMUcaDwI9kFCWdT!QTz~bJ`Oo1k7@nazBeiPgM8=Mja%B8Pl8O09r zVqJspH*krVo8;COamXLt1s^y-S1M{9MDv8Xf_GNvzgyS8Omc$)PZWskS;0V0n2`+nK8{Dx=G@(YXa-%& zys(IOCYJ2FzU7P^3qM%5?A@@<=~ct{cZe(IUa;_~+kvkW?YP~HfWUS?i*2fJyUk;uoE0yY&+M9lzS5pFB@5{RbcW{NdI`AZ1W+KvbZ#jRC5<5#Sb+ zd!=J{C*YH=j?_lbw&<#fYOMW8UIBg^IQ#i)VJcs!?-Pl2A2Y%J8zn5eHwfi%m0|c3 zeu~u}R(fi;5aJX6dW>LB{S(=akw2_EgWuvC8lUk8j(n=O&-#S?j(4ip_8Z>M&JV_) z@n@#}9h-StKGW21rX%~uqq&~wMq69MTTOM_?4fz=XepPsm1>86_q&`prc=XJt= z30o_iQy6()1!ptD{qVj-F#3BMCsfOnNNCN)M8eg_iokZ z7y9Fq`9pVN?6OHVPuHgrgur2zd`%I6>PcER6}f5(jm=$2Wuxw?1NS0l!|1DsxyXkj zKM&B!2}bHcB)wbL3Mj}8wqPkih+PovFdL%z4d%oPU+8a!M0@j#Jjo9PUoq34*`9qw z``iAy9H#f761Z=xN?x=g3sPEy-VrDz%YbQ9qc1)P+#{8#wWA_C~O#Fj}>zdA71WDTsX)MlXtKCi`*x9FXdLqW1byb?;&-7 zx`*x|J z5nY#6^IBuF>BD+urjNIItUYY^yxi2?!)nu8m$-cx{lK%!wX?c91^Kq&(PK|daIiTO z?Zf@XvFqA^N4NGB?hJwCLR4J0J0&n&UkuPSkZly{xgRVDP1*#%z~ zda-48<;L!=FP?-wy!(yivIxlx)hh#?ast^Z0wFfRo+IE*G?~h|gT0UT^j7yCGREAw z5&R%cK5jzvdUzT7+Ezt}48kM&5s-uNh`b&O{)LYEeK6;#+1Vqv2x)hpBWhcm|Li9d z_MVL{>UbLOU7hmdo$C93>lf_*jF!LtfaCyw_Jy6*EAsr!V+bqjwB=DhfR6BTXWSzF zus@KzN$S`2ei^mY2R)jLh~6eU1y#}E-Qlrvbf=y7NPm+j6Z5ZpUMUlq#(l?nfZBdAv2Fp zO0(|2z*dBfpaF@h;O} z`Ogx4wDSpCzdhIffzl?}Ms@%IrL{ub&0>>Mw!*m0;**lT`mkk;wCptkm$`0*E95mx zrpY7J*(MJ>JL0y4u*;>8iSOMZ^rq)O4!+_jU3FJh_kLZy7aP@b7axm`Zf&PG$^Q7I zo6i3(pk4CS5apo$hpu-F(k$w>bhEP3wr$(2v~An=o3?G+wr$(CZB}Mi_t(*J&$)5_ z?AZJ7S}S6&Imeje3BBr#`v>NoJ#7A-$@lT) z>+6ve_Knkv{z>b&VAK0X#P8@$`Cuvv>3%9_ZPwYz5%-4EI|o0GxAwS7(W;=x>jh1z zq3f8h_q7C20;kN6t~}` ztT-u}#Cu3qBug5F`8!l0U{zKvBLiTSAT=!`{jydCPKagPMU%ZK1Nrc0548ahK`*Ih zeK1snp{J9BX-pIe48Icf`S5A1$b~@RscF|upf{M_5Om{?=;S;GbnwO;c8~XiD<0)_ zomEc@<5J#UffC*DQi_-*+pMxf$w|5IzZW>UV#PPsSDR;u-^)m{r)%PQGtkM;vlg0X z(C-)}xUh9Dc~Zzf1Cw`ZT<}gIXnb^lns-~HmVTs;Pu%RI+~~wPK%RKOavmYFX((KC z5V$+s6ntTx9;egvTyw_ANey%^H=Om(wjAwaX=cdTJ&(pE#7=au+gU8kR)S|R1X72q z$YeYJMn=P9VrAVM3Ziu-zyF1M>#w?-j7xYQG`f4CndC5-LUp#AWP%g$N&6ltLCmWp zxSdn$@P1;v)^V=l=MwSlOMp9_{i>VeUSMKF!y;zhn@X`khN6w7(bC0c;Cn*Jg5v|F z2d_qa^;5F~m*D|58YtZ_um}HY!$q6134M2(U9VWPRSBvNNdnBQPua0AN_BDOD9QPu z*92qln*z|CqU*4IfMW*|?S+%iNBcYXRnvX&cl_~*zc4xICR>E#-BJFE^i@apTj@lQ zd4U>hEzd1hh=g`ReP~u1)TzLut6S+uxL{`7fu&hh2S-+mnm1+4TetRkRHC+M+1OV% z|FUgj>z`f`W!cZvZ$%B(s-MnYGsSOl$JpeFu*n(fAYLo^y=YeVjk4nV`?5Fkd3W@~ z4dL6U$`^hyS5s|lz2-MEou9QkR;`d7%axKk8rEkIL#A9ZoIZI2OSGKWS~U~SKBl_ni@+l#Y#8>TF9b$O9({HXk}4PzT$;f$W`tS4K3-;iuBLhhCun zI#Fwhv^HM{2LzOX`w#8+KL@wl**ZBJ*gDJG*;)T*oHknn8lXJt@?HCKql9j8IshDy zJUvO^in#VC$Q^3w!+f5K>)ZzLAkstyWiQf{0 zwI-WIB9Wv1(RzW+;gZE6v&o%hdQf5`?VI`a;zE+9{!(sthx>FZo%!eeG>e%zH^=k2 z+zd#&@LjMCEB5^!0AT{42_ppz#P&kfHmO(@)UNj@RnJ?ppzLBk0FgR*#Q% zWB@+`=wonKFqK!Z|deSrSL z3VJN&%$|5UQtEyXk`FxhT1%jMITh^!8MJES?rm$XC&~qp8$ub=LCYCuIrc&V2VY?q zvMDQ8|EgKO!~*E>gtt_m%b0wn#T>(xFk>1g-A>5daVBdPu3ws3neob?t64!w5x!rO!<{^R+u&htI6CjpKvXK z+aMh+I`Lu5Xc3*5Pm*pF^k$`~9JlO`Tw1+3PU2y-jI2_L_FWnrx`Hn!@Sgx{lW zXGf?~B;;LQFkna;S}N*FCHL|ag>?{z#j40nkeR9MgiKpX8}pQ5T5M_Rgnu5F@hsVx z^GjioYSlu5Ed5%`P^8cDeY#7znvi3txFsDPO$7*vpEl(truK%lWJcNl1%^z4Kjak>4ZNOiqq!Q;5Y2j;2y=q+`aQN@jW0aiEN;-7D^Wswxc0_U3I|rJpGAgblgw=FhH?^a`BCo zV!6QN| zR~FE2tq|98lD%aThar41mSy~>nRc*6Un8dOFleDt)ZD!U%gE46R}ABjE>vAXaa%+~ z8VcD{w%Ve-sZiRe@d&UgjYgL))1X|`5S-sd>*Vat=2Az=nRX?M4nG-&sXz4g=>*;i z0%yx}DDev?Fl(-0L)PZW9F1@>~F$EtmQYE|K1y;fo{V}-8xd)27Z-}PO5Of1xE z%g+YPbzF?P1!FC|_#ZSd)*n~>Vl)=!3xodi-VW>=m!I*D0gv%csmpqg|1KBICnWdt z9{L|nZ6@}I>5lrV)!%Ke&0p`3-REni?{>~^4{ghG5A|!O5C2Z=_fOyt>m7L)RkSwA z6JvrFQ@XMq(_-8$HkPJ^nqTkY+<+qpbZjT|tjD)uvj~ zXH!)^>`TrN)5UqB=h~9uj-*ne@r#4-p}bvfQGyap(lWdLWjIlv#w!b@n^fkyL%L$G z(9L&4n~jM=d0xM3WgXk;gLc$=aY)j}(~f=h@t44i<^GX`52SCO^Hd+J`o!WDlcb5d z>~yC5=@>PI-erQCqV92mnv(8e!X;&`%lIXQ-f03h1$)O4*~F#J1K7kg-TQRXzfZJ@ zOzj8LZ*|SJ9DlY{e3h?y=W;gaM32_Z+n~QUb-Ps}7u}0KyZW)4CcPSUZ#e_Ix?5wI zwuYCWfH%-Jd~R@B*Iy=`GyP6zT$#FT-e&vwR$wC;{q?5i*6Q!-i($jFhKkbskr8Qg zcg}k>R7Ojo_-g80?^S~&f3%^uaRiIqnN8Ec9g^K4)G|ZsH@Z-#PZYH2RSiScgLw^E zJ%+G~M0h(mTq}aHB(8odOEr|%FGu5Tw!+jZJpAD&e<7i|i4vO?T58ld4;Oof$_*{w z(RrR{h9g7fVzd!yUkjmf;57}uw(QYJAvNpa6pxpYY4#Xz6lfigRX5uR2r5^qvxtuc5YA8KJEKwB%t~x$%}$LvyCCAHxCOAOeKOM zF;t5o%&;V^P_N7bkRn0WWz+~)j1uSw%n~Zzh3iTqd#e+C)QcA>kiQsZbL zG5;OZ1c7J_xls7$#5&GxeR5klg4NgX#$CEHRzyna6kl!|V+vE7DNKOr6^$u%R9fMW zHcGu9OgjM^CqgEKL!6&!0hnF=AyIS}?7f0u5wA7fIB}|Lzq_e$)_?M~?BO&}; zz6p(Nf?h4KUQ@sCG+Y2(BNZBce^en;`jh$kKf$e<&NFVFOLT7|tv1LP1_k|Rz)>bv zRqDYcEQowa9EQ-tnLFSBP8#jDK<##f=N^v+<#yQep3fTXR!q| zNEqK(qDzBz#276+(Devsz+khH*!5^>uG-vtY1K|OJ4lTmnYB{3|B@3qdYE?}QJEj2 zmk(x}nUM#>{h%<7GAj^SaLABayD*A9GA=!D#W*1%ub< zGr!2w=bn)t&a34hI{$5f3n~@F2a4bU3k+ja-5ZJ3_Fx(Dodi>VYKuf6SRuktz7Lq7}mLztI|!s_}rEY-9%sT0@Xda zxlBCI1y|_9V)9fI#*foB%tVB$OGP2l#gsUbP^-&0=9i5;f7@RKoz^*-9gaNkd_(>0ChDm@KLFQk2PhyP zklMt&<-0b&#jBG0RIx^+HcuarZ?N4f*|ff;uaNrG6c5uYSHTu!1&;^19k`B2vGe5> z(DgOW2vJ>psaL4%!=d_S0><6ZcVKf%9=o3Lo?RkVs*t7w+c%&#p^U6qWY-%cg~c~Z zp@cAh0LS&n5AK@D4%_8WI~!|6e3;&(FR69$VJdQEHi&-{3`^NE>m1gjH!AjfO<{jv zFURc+B6jN!x(AZJc$Mzq*XX{>%r$KL9T%#RZ(A3u6H#F2Gh#=3;17hHy^vx<$=4Q^ znKsW$svC7Y!@>k*JNB>dTL6H22(+zOjr+$ki^N>3>sfe;FG5t!1}Cwq6`~^L`d4x~ zQhl$e5X<6xz_mrHhFVz2Ut~k)PM*$)NQm@3cZEQPNr36oo}|*K;9}%(2|V=_!Acq- zOZxGe`9s1#<>Xf*F!;124)Y+Ol=AKub3kmGl0z@&G+|@-=H7G#8Dz>Kw?sb87Ca{i ze^9Kt!$9MlKxfW&aO{S0O;NDll6K#K&b>(UDS{TMH@xzB0+&X&gqoYQPx$J)F$-KbCUPGZi}yDs|Ad&pG6Fh-z;EKix^Zghl&etWDDy5 zG9}_htRxO47uq6NYRICk#Ep0@w570WiKAhQ>hEFa0lh+pzkNeSz;UrADWt4ItqYtZ zDeNQ)CXT=Fv4SU?aeC6K^i}vW@l<9e=(T2+e$8x!`K=E`Z3j`Fm@+L-&}FCkFGRMK{=w8SKXm4iIJr1HFcHs%TUm5vnkq9Y+K3n4kGvM!q>@H&nWG zRb1|7K1e3aV)9-XqdH^LxpmO<^O)V`v;B{cO6@n;mM6lO`8$#*ZNVc)YZ@PZ>=<5& z%y-VXK7(;Q2}gCqQb*;=)b-8@Cv>ZqmFlV%J7w zH^iP@9AV8|$CtfMP*TcUTYGmFMCB;i*D7N9aLtw24>e=GnPZk8diYK=PHsi%?$2i>L&7H`1XG_0axuaPka~t{I?vb z#GKx(q<_RYy??|x`v0-&{eMWg|HCH}v2}KI|4;E7tsrN&$bjQ*+h`)w$o8qU)&a}b zRwbYrG6XwRd?8#61(!XsE;D^GAwxErxhDH585k^y^9JNaF*HlKu@^$xyZiXL?j!dy ztGDY51PDLH)4p1&i_(GiM9WbJTo~>S{~D}dS)a4F0rR3k`F+W}BymZasA#cpfh$KQ zd8T+TaqfsLCs#WIii^oa(;FYoVu!gk=+n!86@`&y%aw2IM1Xw%ZODiAkrazcc^SxZ zVmZ{@bgAe(rECgA4_3|>d2-&Y93fVJpz$I>h4{=jdayOdLfP_)R9LIa3|QA2R~zy+ z_Wh9C(fmSK!7f4PLL*F`Ct}+%KGiRGC!b0d20F_eS+y|!F8drdH zb5b7c#*tlfbfnog*X_cP z`D)t-C&Q{H!;8}WTNw4I%Pvv}4rgb&)0O`I*YxD?_v2r1Kg=mIgi&D}su_p)eWJ-= zL=ifF32BG;*a73PRGms)z4{g#FmH>=4ukX>mC7_L|Jx-hCm2bYF3SFDt0F^{N?n~h zwlU*Wj3xKd6A;i4==2|_*n@Gja_36j*#xCVHLOk2O}$phn!Uqh+E(*-xZY4%(lRcW zkg0@IwJDq1mcxz|%8WHyaXxS|Uf^hWJ0Gw~{S*j{UT zuC7cUfv8P2FY>y-JherH!4|L*Pv+uzQh_5P>>U_nF)J=8%vd3e1Cd3TilOh2mczf{ zs|EBkdL*)Z;(^1B5=k8Z`JF;CL*kXrif5qDa;kw}Q0K@a>54{1u8)3^H%l@sWsBQ)xScsZ%mQ;l!=RZ&5Sz_dLu zFPlY-e|6-~r+XwLJNFWK!W`kC?w~wi>oYh*Lu@T;fEL-YDkO7f{RT_TbOPH?;5v`6Rv*B~)4<#@=qBU; z38M+UBO>h^nDm{3_6cY4m$%^~^d&%v<#X{V76Y~(-E1rYfPWX-kPE!vLrSe8`Fu_8vrKBv(ll_{TKs-v5= zQ}p{O8ZMok5`wg0{VLzuu@~58Z936nK1``W%xYL-6T6iRx(JaN$FTR9v+E^U^SMk& zp;JuTuA=vh?-T_})wf1pg-R?dV4Gi+dUHp0z||{keyKj{Od|dl^maDV+W=D11U63>je!V zbQ{T}QhEEZBRHRg)ZBnKc~Go+0fn5FDsf#srW>iE!$?KWRy#vH z2B$Hn`2)JCx3>m2;W+OPEo#jy>~$e2S({Lj1QCIa54On2Rz_;08^;!+R469bBsfp0 zrKiOUz6g7aa6OKV!q%`5H@t&0Mq0!HMHYo>9&tqHJf;Xb7c5TX0SA-<4}|6H4QJH4 zVE@11f32=^&3JP={`AI4l~Gzsbta2rZWCSZYRhH1luDdtjA5X$4X)gil?qUq^~f zVN$!ph!c*sm-Pk2RL5K85xF*SZF+ionG|SrsV!|~*A(e3gVg!q#cD^59vbiItnH$Q zMu~1@a+p>YBV1mu>L*Jq2z&N8l)aERr%rw)tugmtekG-`cBvWKr`r+9IUVA27m#ys zYiS+71j}3j0@PgpjEgk?6wAdL?U*TowUY93b_8V$Z$uAClj3+qGlT=euZ*Xjj1d$f zzcyf*uHZTVHthj!+JVl{u%~!xj#U;|*d7CMCSJ zY&b0p!1suP2S!a1az%$G&x1XO2q^?IZz$mt@cGWjy4fuB;<=hWMxRn=#_hb`Sk;Pi z59g6#S)u^VbYAYy<)(rr{xaJObN;|%>s$TH$hp$rjf)kIt}mf)$75v~^GnhUCBw7& zHhR*B-u3z(t^A+h0TWFna{$+u#vV>Gt@A*Ldrro8VCvyi@rc@a>K*}2ugG8bxGiC~ z_0dN<2VzkXxeSCpA+$dJF zZDOiy(cW!ps;)^aS@bF|0*wh6J`zzL5>X|j@7ZBr0;KPcY^0cfM(D?hpb&|sAs;Zg zqK&(EEVHz@OU8F@67QGNM!2Fsw7JPI(S1R&NfOdtpjL|2SCQ?Yb^8LMW~c)#74)ze z|FQ@&9*SUWXqaELONHT~K-1?PSA+SppdtA8>WB3b4$<5&`LmV;;4%C0DGdvmA{3VR z51L|#D2WGrLVQqcpM9RwU2;e_xI;q1T1njub0;EZJ}P7 z@|%(?H$p2kVh?BsC!bh8WmwJ0b^Kyp*C&D4G!-;KDD_zv^D+a&jsm-nn>9z!5{D8$ z*ZtAKNaA5h059w0HaUf5_a|ReF|P%d8%Xkx%(gsMg9JI4{e>ZZE4mWI0!_q z6ApW1c+cjFEj~r`bjj(Qg1yniR=*h;l&K3kF@ zD>%31H3+(Zjpuw-5Y@0+Q}Sov(cjtz>L~u?f4^N35WxSCBY+Y=Ocnn8H-X8U6=?n# z3J6FH6$psrfBZQqyW5*c*qYk?UvWv@(;4L$^+%?mlX*Q`W+hu4K*jS*8rc1mo$H*Xz!$&#U(>duA!$x*JfR_Sax!a9axo2VgGp^3I#SC+PCs z<##VwdW+DIEFyp0oe;fb-6S+5`@fle>BVn<~kk!@_KMpJd=bYU9lKxI!33+GTb2OtjmN)`PrAI z-&kF+gCmU>t)NI*rc2uqm9vYqmOO>cTeZYtZBlV5B9|A};h;JVGz_pLA`;iwA=cHE zJmOq?Ra2H@ddpNcoCnRXI%14pgO+Nk=TJ*^tW5}!%;`q7f#CR(G=M1MAXSS~9}E4l zm|dyDE4*`leKCEad0#3uE7Z&dqP*mgoG0IavawoNIsgVf6t^O?#B8f0a}=hNISyUQ zWc##X+z}@0Sl6~HImF~Hx-5_Qcy`9WUS1K7kp>T)p8Gftqc?qd%@pNkRcAEUyqwr5M!O1%upS!wXt+9~66Hd3K0F2$vssVQ9HCtKL0$f_1E={&{Z6+H!skkpSd%hG17Pom6|<*ZD^)l+T_I?Q3c#*t4n z)=(lnUf$3Xg$&2g;I%QA*ep#~TC%@Jxkm|e8!`4sP1i9!i2{tKq~%PINf!=7x#WMH zWWeV3`fX{KqO2FdCVikKJiUuRLY7`JD=>>7G4lcohBCAqBaOG^m@ZQeP`*4DJwx#3 zSsY0?mW&y)&l{aWnHv|zF4-c<8$#DvC(&S{o#~jIEHHX&3`}%nO9rf#AfsHaUj;|e zIY+)#NA2#vGN~FxM@4@vygkF@6i;Ma(V94Cp-7ND^UG(tYbpJ<*jSUKEFRZ(#ve zt0GS7L%Z&gL_dr&jV`X42C` zA@7D#iYL>T5giio^h`^}mo#!2!yd7CG^vWQ9dc;J91XpS!Yz1{n|NxTh^?& z+;mLx@6Jk^+S3ayO=|38tf%Ea6(FYnnTfXe5*RX7@9s#-J67ZrlPSlFCNt_Jemk8Z zyZjreO3p)?HqW1(7Wpy>9}c3Y?2{w=N&@amzH0&Q%DyWG1%U5QLfst)3l7*j9BkT`qHVmOTq!1f2I-ombU0jOF^FXZ{|2owKrm`lh8ua)E zkemPRk^W5P_`F*Y4^=mktvjKPVa0wVI^iJVQ4!nUYZ)(P1})`%t8mhs%(Zot?W_b| z2u_5z%R!i|A9T*;2xZS(d$?b#P-y#oV4Jjze1z%$hETNsmqG*m=_dHLziUmA3+Nar zi6XT?dtDcy#0d8uCOVihC-$u~ra%Cy?P?>s@*+ZPuXpgE*Dr_7gJTTybe!{Pdd9*At@T%7VIxlkRvF`v7~mDcA!-9Wt~ntUMgi^ zoA!FRRgw;;ETm?l>ffc;=aN?q~lRySAN&F#2K76J% zr$}H@7t=>KN9sFP;~U&NRjJN$hLDn5KjoVZNVj`= zRE4hN99(-fc*aSJ!B=J0D55zURjtUSy%y-a_96ji0y}Y-2uWRQ)!yNb(>>^{?!OS#n~@dz&k!Z`e-|xa@q}tE!7=;mWv|h+>U*$86{=nb zs-p%ux?DoA6WI3ukBTf_C01S^yJe*;^WNWNuRH6#|hB6|qC8VrcH-}O&wm@>dE^RXt zLW_-SM+{+S>~>NhbhxT8--21|;h~3FjLH&d25_U8Jafdx{>dGT{1oB zlVUE|1} zq$ga@JVut$wLE(?He=*es0T1fGnk1bE!8rYwA!UZ*G5=-P;L>MK{(ealOtX^ydfD~ zqhvJ9c;;q|-Nvv)oK64CkX9n}ZMPAY3jCrxa3;{+{{<#$d9b?>cnlSf#5P3+y&)CJ?eMhg0{Y;ArMzV`A&<^#3l(`bw+rKe(3; zChvyU2L8dY9Qu7Jq~?l-0gxa@42biHL{c#%*kdg$ck9~&Jm+a1j^FP}HvDM3a7iTuttoToXDygs{+ z7u0rq4!`=Asjh~(U{VWk&AI_FzK6$G4)iky!ls4ATio<^{HMc;JpV$`O>QaEy>(-> z@Ae9Ka#OPD0rxOD$?NDQZwcVD<1>$fACpX71Y*5JgS#I0DqUrSC&R0E1y^6$VGju~ zzVwr|lheL;2iR{VSAPqy{wBigCLFgO54#xy)&tde0Ly`&JZq%2J(c^p-ReOGoL`!h z-=Mq5@juIfx09FnV|N`e{7ZKsWzWR0{4WROZ{_IxgT3zew{PuT-|+AuAmQ}TxX5Wg zN!NN~SG_!M#XLV+gFohP$$}y)V~M%4r+(9X4(x8_n&k8!fJ_V=9*07h9b_ir-rd z2kpm3;4qJW%7+)TQc)Gu?nVyUhvaF*Tu@JJ#LYg?UQ2JqNfPUa1(~sDNx&Q<3waof zo8k!|xsB3$ss@^}ksVz0a>Yp1G`XaGPkqs8IN*;z!-e2v$X)?$i077d$Q zwUps1Iea(I&@{Mv+DTGK!|@=~wCRjAivG+rEO3yIb%xz0G;XIjY^#nv+PD_9Iu?^t z%Qh4`46HdHeSib#wl_0TJuQA?5?hUkjms8XvBI4&F=Fcxu4EM1QTI5I1X;7Ta={m| znJ)YmC37>6HXx*xFkUq=$_{51>p))Ln@E|2zPTb~4t8@IPL5WRtw1xQSk{r?xsc$d zELoPEoQ*(HS^JB(l-X3qJ%rhP?=AYphNZYQoX7;X#`f%549@IO$V*sW%agl_1}T8+ zdEd)rJ8TR4Q+l}i79F#DAOmZ6t}Jq10b+MC@e6NjP=GU8YLs>@pPD^^%XLCpsY=3D z3Q5OZxjaT^EuXTsX2L!-=Gsvl+&hnDR$EQ!4iXn%^_a^?PiFZZ{4Fj92aI)JF`w!< zd^3LjzVnSYrytw}=ScD0KDDIeyh8Hb9pAU?5CP0(%YS$N9uZTQRE||=8pFxu-jX`Q z`3vzzHBG6HbKupx-dK$;g?R-p3j22gle0=Sa7IRXC6-EMrN)}fxRLw#y+r(lkHH5J zpNJ89d?Dc{3=}7}8zXsCYiY^JS%s`lad~@3M(G7BtDYM4k{~YpK~N2ra$!v9eOOIE zMK~HyoJ1Piii-IAxvv_P>eKZkPWV&QD+V*~yje|$p?mQpgDHE4NZlk<=sRp81W|~P zyX)5QWa{I=mTWzm?81FDj@dM(WxMlD++Dkaq8C|lARQM9#pStl0eyS~sn+z12s5>* zS*?b0q*L8Bq~d|+wWA$s__S+(DP#{7AyOgNTRp7H)#dnrYKX)ks0KZVrapwhnB3nDXN!=v9jH!HYmkf$>SS z?RuSoo7-gwt<`Qm?zCPU*{G!$G;9oNVNTFr9fxw+&<4)J-6`GlH9`*@ZyFANP2{IQ z#KzQ2cg%2GN%8a8##3EhaaL2kf6Onz%rp8UB}tv1n3E>@wClR%EDybr(%*X7PN3_rO zNuLH>hFqF=FV*`S-677GyT?UP@U5+D_!vRZ%$fWm3y_!?eRGf*{WBhIVtepRyiixT z9Q`{709}^YIVYf91r0W2R^T+Bl6FSF@0^-Hw)|8c5l_IRaq_leC{(s!;Fc?(A&(1u z*8&h2Yk*~DCgT7TQ>oBjk0lEtAAyxrh_=WO*~pm|%0)AxO|x%}d2$FwleYk?+!J3B z4Ddxv0O?6ZQPq_EH(CtjL?+3c!AVw^yOk0*V#9MwkS*fXo6EzVpcGLUNxq0tM<9?U zM~c7GQ?cKbXX|vSnV4?d-IAUxu4kmTJ*E;)q5NoZMyAP1p099jps}Q_ly}NHODjaG zDV?!c?dc9$5zkt!O{9|~qa*D4z?nEC8Rk0;@uiR+YLYixg6>Bf`XyBt(a?glu}l`5 z=fXW}R5C4OD)f|$ltVZA%cC;zG0?r*)sc1ySj3B4I)y1pe+1CHk|5tX-Z0aVW`7Oc9aGKeAT?*h=TJtuC9t$0sUeZifqA+!+};IMqKAwA z{enlm(xy(bNUE9i2SyIMtukPfJEz`SrjkD>1oF6sHX(DgLojIz8I~8D?b!9?SXY7M z)!H1V^WBx&$P{~Z6Z1DW+-90ez&(wUca?PCv{TUK9`|0%rU^ykq`(F zHKBL1`9ORPFmV>RH^Rtp%su>3$62ihbWQs=UKJT~#WyU-a=0~2zxyphrqeX7Y?^tT ze@SSP7Wv?w+Z16*@+Dd~gIz_*bDK^nr3r=&7N)sr&K(!^#36f~tb0;Ej_#kj$-(k_ zLglTTw6C5BR5uGGr-N1`)G}p$x^i!V;!HUvvzqpB3$&KdJesI8}zFnh@;u%{}yH(zn^^vEk~A^O05 z+b;^yxRP+cQt-g#*e~Icp2-wKHo}GMOa2(SEe6=7_E*syBI~MAFYx@W#HP zDr<$8<7oIWPB?qypdL5{T|&|fC7O>YJw-!HtDu+Ppli72jE>%^Y&?o=h1Tvj0>*=m zM9Cs8(Hi*4(hdk6zQWU&yQR@y(|p9_AM$dCax-uxA^ElWO;_q-6EC|#};M6u+ThzqX0Y z)RR)J;whs!2FV|r&#+xJ*NrCYyt81QzgQny(|5|GmY*l~E+KeBD&_hMxnv8;o_I{v z-S;vmU^UQQx^sCaqhjK4su>a&69Sf2=lcC_l`in*J6ADj?doXX5f48`rMvhIR$rA; z5_0RUzp}PB=rKrpr^J@IcDiF}!vfjS)=UB$PFc4SSMR>P5P2-f&%&w=E;(RNH^=DV zL)N^rljkSzInDDI?UiIK>Wo_ts?u$0X@&DuK7C|Ve1sf)r1o}!wG6atQByos8mh+~uGwpPim10%+xTq2qqFwtPGjW|jPonCYNn8M@4}v?6L&ge`Ud0T z3{p4pcqwl8dUfs871yBJ@Zmn$VZkra91GHI&sgygj<5 z#Wa>Ve9Iz-d*=HJf*)L)V-oIw;<AH#IH4I5BPq$RDsv6`*oH*U(Rb^Axyrt?cxCz2$@kEQxbj8ju^(Z870xONW7i5Svbp>aO_11u z=C+ge>ryxpZO)7Ow`L!2059jX0jz^ z#WK@UIT}mZv3iy29#=C`F!s!^)tAYLpx+4uDGkx%8>~K+m~6I!PYihVzbcQh>FsVx zGpcwB)oI6Qom4t+ELJLXd}R8Za$rAL{il)d(&`)n+bd-BlhGe%L%gZq*OwKsC~!S* zSAmPGJ`HxUdN^X67tA!w=&Knk65qC>$}N#Al+jHqY1Q*O!e`lNR5t4culppMp|3Ag zx$f|+RlY2h9Y~T44xFG_lk5^0XlQ&5d`8~9TqI4pgIUD`M4BD*3?isWI(4& zrDm(9O+KA@q;kH^A6NydvS$6}NE@4F#m@5W=9Xp^t<>Gut=9+Bgemc>S)YG?uaj=i z+s@amTi(fkhKocqKEM+YB5vusw>A#JiGvT%h?Iq(U(LS51BdEq_yUu}DN?qSiw8$v zBIng%15m0{@Ql*YrE8!7uuzdOxbd) z=Q7!;pMc;g9sImQ_hJ}b(nHnBIMxRap^@t37MBMOC4wx{;>O}8UA)sb4x(Eycb1Pf z%04poPX&wn`w$@7{W4`Xv^gL?wbQh)Y$_m*;@HR{kN70ImwVD*T%n`yZwo-IVRe&7-t9BFEALR0 zy5)~5Tza&_v|M_JhqGg6Rwhd>ik8WW(MdJ%cV_Qk|5EFJ^@Q7{T+nj)%7*MvP3Nw@ zvt`?*zR;h2iCAnOtM%dX*;KJlt<{*}>1Ddc`i?KHsN$f1#EPB&A1*8dgpj zQ)PtJR_Trnl`_Gq$Ay(H!~;B3NLFk;D)4>Wl}FR})zYGdsjbkL)K-^kYHKwIP^#83 z)=|>2B8Rj}R#>fBuouah-YYX#MyCK$9>0TBI`_J!iV7JMqDorDb&MYJ@nV}Y6kP=9 zDs0Aux#D*gN;bAswMf<%b}UC0DJ>ouU^O+HO}$;NBR(oNKqFV6xBSnRDa;eEqtAsC z%7I|dha#MruM2+_ktN+KHNBgRd%ye`2W zB3One;a23e1Ad_4WI#B|$kCb2*VVA54Z3_05y*b+P#uXK+h-E2hO#A)e-UPnWYXi) z)1F_$M#K&=Jqwo**Jy z)6PNb#i>-FXZ5i(xi}|#X(A(h^VN7iR#^wTu!+hok1Gs!B>wiZVoJ^x&R|&i)Dud> zk4q6}c7m$1m%FG9LQLPqN;|o9arXZUgF?@CK4InkJ@{)T`c1%F6D439u?<=qTFDed z>ynPDdZztOKemU8<pGovDskji}2i8&*fiQ_B$U-Mnz-))1j|#4@M7DAHGJ4PTm2Zfju*N zSw^+E@#o>eC1_*e7(x6P+^@Rj+OFbJM52`>|$cbhF*y$Y`>H5CJ1GP@I zor>~W$Wa_Dx3)6*_!81{3G(mQpFfNso~9E^ zKOw3g8Qr-kqd@$M0maSDytZ_glTW+{Jd^$4ZjH+gFo7~O)7&=jk}If}1XQH5NxygE z-0pwaeU9DOR7#-vA+0&dZ(?h-GlgaFiW%SBwMfdpwlZ0it{G9HMB5ZLnv9uj-bngh z;57ucc=#JX-!i90gsrq#Oc8Bt;Z_x4rHMbh(sy^ZtjUHM*;+~$V8hAYvf+Lz8US)F zU0B@3SV^cQFMQ!L457P*m%xv(BCk03o;TGo%aI5W*EZ18ClJb+*Q@VO3fK~2?CCQA zA%hktHhF6h26mCEyP3=?b*3OS0)xJhrGP7E+e6>!S4W!MLjCfSmp3mHAbNGEaGIrD z#dqQ;lJTT$DGx*Ow6Qvjm+NfFXvd&oR+=Sw%HNI!gXhv>-Xm!pz!{eO5Mo#;Put4_@fmE>T z{BE%8JS~`={#S`-!l?tVlkBLW?bz-S5HtzSXVcHj*j~%Kzh6MEDTN!8qn$82(|Sf& z+ZmSW3)xkq8Ko@386_N$h5cC9%x{-pu=s8mJb`e2GPJ~i>fd4go&b6v&QXX!{G(79 zF7a6GE2OGXn`l}F}3GW7GaFl+!nf!ydrGkfqEx;Z*Tt=cC_FO*JCx0{k&Fs@Ke!(Wrf5a zY}SSQbgT>L?x^E>%q_=qaExg!WUKrUF>ie>?cI;{=O2dmyAx8 zJa%^h8>~A9{6`kA_q6l@T!xL-kbO+%)qd*cj3QY|9vj3PxkKJy&jBD;*aIs?%OS&&*Yx(9Y3s( z7SR}fIQfB=Ch|39`VB5k&hD@&uyz`YeSQDWf$!jrQ&6_#RLMb-<~&c}?%^x!x1X=U zT`1N&3mc2f|03)im~#z-Wzn@_+qP}nPF8HM*!g1Hwr$(CZQFKMag-$f z&JTEMs^0FJneKM{`MnIZ@n(V_l~HKg-*7Oz=UF@{s7BG}}+!A_N& zai|{30yDGBSABVYWsdQHr)2~IDwIm96)Js-paS(>WZ9)^uGR$1rLp%d8Rso_PEJ{o)Uv(|51ncE>g z!+mzyc^i|^YBDYuaK{@M3eZ}l)6E1w7F$*XK zthc{EMO>&Z(+#eX%6~5$0*#YDGWOsmL|(<+u8}$W!!ZHN0+v^7bhNz^f7ih zq8&@1&+^5L$$=B1nu-&k0v|nNG@}nS-eK8PZ-4$?*{epVT(`zUrI1;0s5&g*HPz=b zaITbIZl2(x=Wwsy{u?cS$&ieDs-P1C)0NuaDeBLsDM z>7!S=pT{sQRkLO_n-`Q@|7MG!*f9vj-hDAR?^+u zO&imT*T5mq`c;;S2K(=+Z+i*O7l2#IjeT0|O=;R$;AFGtqjHvX&p-Qn9>zZb$Bvv7LcTdwBO4~8<`wBbF%i&+sr-x=&O?gHB{@?nT_7Ln z$YY}COtow^z)zWZI|5)@E}49yPEiR}d&-3Ny~oO8z;P?xd@H^PIPs zEZK_xgVuPW&+lff=!Siwe=6UZlm5!;I^0>3{@Us~w7ns{$*z3wD)ng-*Gc%%;B5N= z{NbG1V*vRhYKoQw>|^+e;+N!nM)>B^6VP7p2^F2Q*mz5l*GnFYqaSxL`Q&qUk#KVY zlT4XnbHHYl&BF_H>#~JXdIdGY?Q%hnu;;yI$r~IV-EHM^$_U%y*>-v8jwZzzr6N(J zEzN;IPLW8q>RV@mp+uzTgj$PGkI7%a{U%2rqZwMOAooJ4f+MB|xcblu@wuid?ii$f z%aR|LkW{zHw$-^c1Be$YvPBxJ+HlQue^0GEPIK+Z&$J}r-(BL#F-~cZUuhTva2R7| z3z}0M=d=)FpuwTrN7XgIKwwv;#5CRxSaKu4uHnKz`{}SeYg5vaV`Jp}pvn!37wVJw zrZwI<)@zcl11NhS!RHvR8M*Z3wQUYo9=Ey(a*{wb8j9ME^5?O}R&tjDnu)91w6&Hc z`@k2SjLW@6yo-4A&0nYLH;!B!>?EpOuI18EaWpUbJTz-dm!n+F(<%~zr<~B+pouri z2sk=b#Vrw**vilr-xZuyaPsrR>v5IU{V2t)h_^_q3R>d$wVPvvI>f0_$SI%V``P&} z$X!j*-;b{f?`BU%tq<+5;P^%8SYYTL_cdyB#0a^>@Nt;iBZiHY>%+rQJlR=|1ZmZ0 z!MM`$75<5p2Ruy|V>BuGSLXuS{n&&x&;?D<2S(@u>ghw)t8+_ErG9qN3(We(H-2f} zK&nWM54m>iI#Tkp2@E>8Q@OT;-l9R`IK+5;r{r}cQM&oI2Nf8FiEw#`LNh;bY&~6Z zE1Do0U0=z_D~*VJn-REUYy!wH>&uVcosHg&jn)?ww{sPDUF5^cu-~k^#Q+k;i;$EO z&@-4d0yVS5GP`qC$dh51OrP}Q)bcYDc!x_i7i^yjR<;&S-+@+2gMyzBKkla*aZ$>SMz@f9PZ2pxG2b|oj+4np06ow5cG^vIp_F#o;E09?23r+y{incQtD%%hJy ziG{siPZR2_!SBZ{{yF3|#s(EU0UuZ6N$&PCKNw;@pMBq@?12B)Uh3q`!O_{7Kz6f+ zj0ZXl^|#dm3L@I~LOswJ^wkkgVG8sw9mrZ1kZl=o9gT2rHe8Jctah5O?m?w~R2LAX z*9_e0%>w*o6HVQcjsjRylB7c7OYyj{`l`Y0^@0WzmE9ovtmC6_Q7-;mjCGzkgAfjr z0kv6E6#>0B>Auu!mj1{Vl47!lZmr>&9M|s~N>}+I52|g_Y_~phSNwn~lCAE$r72RzJ=OYa%8oP@w!G3+2MX+T@eec7RR<-j`soVuM}kk1avmxbvT za_k@cUefDxMoX%7R{i~wATd8{gg7kqd5ZD<$0P6IO2;zL_q0$$3$hhOm<)@1N zm(H^1(X%Iwk5Jw50#PW0D@Mq8f^j&zwZeeP6O-;%)AQ`Kuh^4bRje@Gg^tt0 zH21hK()$imL-EJp>H6?HKzdg{6zxlLJfTiX`7U6VsMrG9M#a8Mg zYz*POqMh3Vz-RIBWMb@M;qDc<21OrfVscM7M8sW5y2cAmY4L<@AJpArBGz{A#zR*b z8E5ndRly?xXwMTl1GvtUY6dN&26h!yxQfqAQr@1BbMyju-mSuf|CBgK2sL5A-(baf zq*WfnvF_N|XexF*)Z3 zdH?kRZW@X36;L*--VwP}3f9BPL*u|z2xLzovcb?Q&oY|qAVFIb!5)mUhD|hnYh8j^ z)d}^MlSr`c;*0r!Y_-k4lfOHv?vn^A8_wM?Pr~8R0rRGCKH{jJ*#s*FOLpFsjLtCs zHbz5zuu30H(nwU__oYtd1I{WZ-0KjN<9u{}-NzYDDT9(0A(o<4 z?EIQV8)}!%IZ@@aA=Eu7OFI2jcwQY`{C|9GNVsq>^c$F8u%@-gK8Vg51MB}5ec!Mx zbqcmpHm#W(Ne($YR6#Ph#*s{IQo>LTFH@NstGH{B z4sy|gi+lMt!2rkjgcg)(ea&>-NS3^iO}iX&oYj6h4k?OnCpi`-ALwIV;P$*6a;Uc- z=?PrsJzVAq3tA<_Rt4qcE?2cRAZ*8xT9y(|4CrbtgR)5mi>k_|1t!Lm{e5tqlEVV> z?wj}(A>Rovqw*(NkQ*U$)-j}*ZEa=lYPz@Y+z@smPBj|QO!xIhgYDI*j^J>-k znYS}shf9Wto<+z37e`kEw{d34<2d1uY9LQe+HcaoqO+(JQ(Sl|2m=fyq{%x2n+XXPx2aTFE77K3WBXx=A;G z`2E+aQLUmO$&8kxGa;UJR&EULKGE4p(ZZbbw#bqi4tPk;{%P;mT6Q0YQazP7oSu&a z@EfSv73uCLX4E0EMrwQ0(ZE>$xVCpaQU%~=k+{4p1hs~hBMQW1pQ~!!r zFqENYLiEc9W!w}4{U}jj30(}#$*py-($6UGBkkF@q>;mUT*hAd9n9g|CL(x7mzpI` zsChdd28c1-{T7F^iqy zXcM~0pXEzaJ=N2-H_pS`r8v(WCHc|4JDCWU?lQox$*W}|cFv!-#Z+@)i1i;sq6PvH zZcSx5Ig4dwn87T*LAAZA#D9BWj@K+;cn6T(XD~eNn4|TGI=w97fp(WYnEtnf6-KFn{W=K##_Yj6Ti6|EU?7yTa-*#fgy zgvOQG_ZL}UjStByT)?|j8&J7^rf{_faj5-;D^eRJLZ;!{i+8oz zC)0eR4|r-1Xv?lN3c_J4DHG|pNZ47^IHG29p@ZEp=ss%-a$s!$c^bZQa=7Ji24|+` zkk#pyp?(0o$c-jVDm%w8BP~4wu#htIs~w^IQO~)^cVuOQI~G-QWeHjUG*k0r^OEZ% zm<)wIH~TofiPKLzC+MsL6wV1jql= zg22SUM!~`MM}_J1pE~j^#R)keMiky6Vqy*`pnXRJ7BU7tvT9a3277~FvMiULC}z3F z`lAY=?`m|RVbJ`&F-+TVmoRgyg(utD+m3SS-rik4zc_|fk?bo;7(zPzRDdnnmaVNA z2DOwdF_|tC18R?)1JI8?`Y%G`Fj$0^R&+%H7fdvu^5iVMsd5_$ro9T8MHNt0V)yZ( z;fq&4(twikl1EJ8o?DOgZ*p%EbW50Jx7kFPvikF}^I7%H@OF8bVjPx0J>)#56H4>5 z=KPVXsc;I(xemC1ZkQ)#UK%%Kn1SFQZ`q7&l8n&4xH%5H+Oyu_&VWEa5;P3Jx4x|D z@$iFa&5_O$cYPkFYo7W5o0nl`cgg~pQEF1EYCXAeBQA}SPX4qw4BArW2iWm-45B0a z@b2{<#xnICVz6s~uU}OE!xqQZ*~a*PU*j~XYPtLfWxtBsWYXbiVbLK|9FQd( z%>@vfKogURD2r$tl_`m27R!n z)QW@dMUuCw8?A69hX4mft@eKc9bkOAEZswq*=UdDDib*SQ(HaK3{`E@R^Z-j_6or8 z!25g~I7;+4RdZnq_9!u5i4QnfiENy}{i-xD*`(|zrTSJ}VA?u> z>W*0qGSaGMJOES?ewJfa^@+nyUKK!f@;(RVVBx+Q+%XgEgmoWpl-OHwdfUL?Suov<_vkcR59Ugjq=^?La zV&$1j(H9z17rW_yTo{%yS>PMdnGO}lU9Ia~qskZRI6*f^U&vHZD*>y~ma=lsvYT^( zy5FJ0aAoeAU&N2>*6KLT4^#eGehSCBLa<>WQCzh9g$R2UY7t5}-KJ18{N!I}T)oGd zsmfTj$7RYwGMi_pIsm)5cuTikaZ}h%GX{h?cgts^NQ0pa0$Y*FjMJAL4$tBl8iQgc zV=+I8QlvRBLIHKGP83|QhwLe3nnr&`(~`T#>{(41#D}V9#sLUFcLX4oT)f~X zv1O`(=+|}>0kVi*R=#4evNx%@5Lm`pua(lY)ttrZ#8e>{v9iBg=sy)#caHdHTacv6 zZ6uY9w~M*jAk2lDyTG|W^>7!zla68%JDR&fg4CQMEP467^jXIw^OBLn=5bPMJN8Gw@TfV>`>G<{Z>O1L(@=*tX-NMzJtdL0k!? z)RIEcy7-$(V}_pQt`GFHKK<%1ZB~7JAwwcXxUf8un@s8ZY0iO;9FGK!(F;NWPFeWh z7CjMsfk?8Gd4yQc(|yRWAIH10JbpKH{fhGYjGhm-Azl&4&W_?%{F?W=FS2TUZ zsqqql58OL)(Ialo1Kp^DP}>aI{+1s5y)q)dM#{G4dqJZcxiR@}S%tPvcEy0M}ncF|oj7~_j1VDCyU#o4t71hhP&q-mA+h7fL z)L30AP|sUN&<>;5e1&HLGs^cPYiajZw~`YkCL&FYpv8B9tLFwJhNx$rluML@xd#VQ zD4mxq3Pi|qXpxx$#~|1Wc})5+_*uyXMb$x>E^PzV721z}Wvyfcqc7 z$CfJ)C->tH5&EMpApalUW@X^$C~RP4_Mfk-Qq^)qHo@@jCL=X(w_b>C77)~=m@N(p z#c4vVIzln~O^Ko@(!ND!V9*gZ7Tf@iVB^%eG)HZ_h@DwCDrkT*VsAXWvpaLUe)k4Q zaguDFRV-Pc-#PQje(~CV`Dgn5`q4M@i*4T&Mml#n5ABb`tYK;}Uf&r+y<%pV0U}JB zGn>C7<6!Q15T)((XkWar9NZg5hzk+LV65F;xP$3L9?H-g1f7VTB7yEAbg)JASx|ml zL$oOXD%1-IR+zKGtRk7WIGwcXd06kq=l^jgi5KW6jHY846lvh^(u2jia+THl?xKcH z!$(+A**fOHxM_F?jq~_oNf;|3!h%ebIuDTx2wF!l=?24s$I^ZpBCGsFyCSh=8KA5e zn|O&G%+pF3$%>$3haXN!hL5cYGh~D_Q+W%AM;S?kEL(NS{{C;>O-?G zMt(@*L%o2~_5;A{Qfj!~RW|)p)US--Z?@p&Zvd#@3%DpDuN5QB_K#UY`;N5VR}htA z5_DMl)06qherdvAQxf9YL1#JU!?n`ni3E!$Pr)cIekPYdZ5Dm?;4Wc;#VzJx zO^k8bg=X{B+DBm0veuNtK|47k*)rq9^$nPfzmfaQsW|jmqhl!J=gqy_*PyLS4FtXG z`PgPv#}-;@$pX2yzgeL| zZb;YJvF_rJ2W=OA3I~&v+^7=CsRl&pKc!#TT^AZDX6EboPM~Qr9zN{G3`tKr=q%iI(E@tk370hgx@59dp1}c}L&|birr=J>PC2ruonCPa za_3`SPPfGUplnTyN*syNoh(oUTw>jbOa{;sBUMZ`v}6ie}Ub~sHKAYiK#Dc5xY z#g0|IWvZrrMOdMT;E#7T0aNFgPL7lAP?;nusYl#ISbe6?kk{V=%3*my<=XEGns)IQ zFeRi12vCA9H}=4ZUjgZflpJG8dPvYJSk!D|P1v@b3_V|4bb`iL!!p2jVvMIy^p&4X zOtx1Yv1j!viPS~myC>#dyi6CVGYQ9^l{-#>oW88pj_}CR?fcl89=L}@e65h?U^1S z4{WOJxn%xS%*U_DIZm=85KOxmT@B+&Meou2=yU_)f+_?6|9meKZ<4CtwjfqLJQDd$ zh=k%@m*~&!IA(n)s!@R0EeE;zICLA>TQvbQ;^lWME8oXHmL>HX1M$tc$DfAo&HoZy z)&RY8a;A-3j`GHgFBBERuwObG2AsIww6mWHWZ2yQNuA@HPm_BK;^fD+PXOn}xp6*J zRyce^fSH}y8ev={z4NZEG@fd^UwbkcnDRoB6vi(m;u+x1X(HYzktf7gxxx1xZ&FDj zW*>MWKEdPgxAM~z$H)<9q;MCSap>U$%<%iB=92wgVIUeT%;AN zM&^VQ@`Qlan}ZDV^NX|H)k0wZ-RFyOYv*-+*Y<+*_Vn)zQvjP59r||MEV*u4K|U}} z8#YMNxR5^j1LiU?Z#}}vu&r6RT1hdpM+UF6Wx^wP-fwXpfZ2Jqo4#YGXV3ctzAV9e zbqRwB)n!J5Vd1y9&yp1t$az96DnlG9#I$cL{tsQFR*lKP3_LFFz2Q`jYUrPpEfN-{ zR!@m*{NoS_bCG9AOI|4RY#xb`L7Vd0zMde)reI>a0?yc^$wLk6#~Ml42N4_5p=u$FH#7XeuzYBPvKA-uPRy#mun!zVqk=%(HIg&jc%ZtegmYLboju%E(N>puty^`O zg0mwaii}qol9gXYT?}?q5tq7gK#({`gOoN4{(t8|zY~33l71S}@KgW8Bt!T=xWXSZ zXD25UhyN=V@~fZRpDfH=jQ!mG5AG9hCrAUlF5 znS=ZLyOHzp@ry*fvF>7ENB@mXdBrL)u1a_r7YSe^27i#76p^LWGBPnRF);f6B8Dag zW(I~19qNT5NyAwEKX{Pryng}~?XO?!%Kzg4K-kvUMBK#2#KFMH_CFt2WNrS8~g+RK&X?(1t-@fSvKi1|2Ugso>l3ZPM$Ys&7t(38F>I{3za z6s!VQMoWR4oAO5Sixh#EJtD*bQl-Qx+*0EU5_yDhM@kX&JBFEWG{F^&$ro9pE1A695;>$f0mg38Q`W77KVMN+N%#^TV+VQFlIkuv_n~~t4*nFV_$RTnkoYMwHnaE) z4f~ZOW%1xmT=tg5P@;1r09g=7oTjZHsg%D5Q~hTwcTg-WE1u#!v^aji_XgG#WNq9C zW;=M@2ob|Yi85O1F0rww?h1j(1+&u&<&r4*W*=AK)lFOq$xMKJZuVCw>`7Q6$(&3} zA2+jEN{&`7fvt=xVB0^RQNwKw8p`p+m|4FK#&B3wWf`O^sSk7eUK2l@%BgAitM@dETiv9((o;rp3G(!zleX}RuqN%5IbHgXhrLCoyWVZ(H8GnOg9A5xo z0CVsyfVC}&vnh#G&_~5YuFZuppCQCgxCtFpHBA;wb;K<|7i_GGHd_nx5wskbPsW_2 z8rS4m2JTRq>2zV8$5yu1CyxqEIqBUleTp9qT2y7JQD|1H-YK(&OFcNr!KbJux7jd{ zzBgCaT;;0YK`$-^3Cm&;1o&%wh!w`Y8O;2?pHx&O)U>-Ly*E)U$#p`O;b=Rk+o1^! zm@fs8TQ`JLH`-I*%*A9#6m4czw|q-{w0*y+B$Bs*pUXgoa9d3@{h^vnU@-bLENZo8 ztgfVz5ieX@Yk|W+Yc?#OR`z6s*+gd+V0wB`S)at4TBDx-?(28*1 zns@l z-GPFYR3~dUP>@5#dWf-`p*5&EKkq3l>O8s_2)Lt=k*bVLU#lZ(;QyHVvgP2yh>z z5u%=@Kw%#Qm};8ux~OvM*eDM&@#2Td5?_Vkz?=mYut$^&r_@gx&K#6PT#!g4D6w{o zQlkb+#)Jl{##z;E+?r6==}R&?TOB-;*?m#rq@HegASK_yG`J@#>v`nH9RcV_dKX)u zF(i{ib?4@xIrj~bv0z?JVR?Nbh6y2E%Hn+8(!YrC@ly_c!j4WcbCSt)m`JsUh79)g za^O%Og3!OB%FC*`Rxt$+)!}uhd_}{E?$MO5icntAtVSAD^tIusHZOAq>1S$z)e33X zHIxdIc8RIteVT--b#0V?iAHQ_l)}k9WlYTD>R~ryDr1kjMIop)@2FeqjWcTk1&{He zk8-HEx}+onxiTY0vr1_ocl-T3ZKsq9#SqQ!H}iHi%YUW)k<>Da$Jc3C)T?64Uet3+ zjTs*VC@ds0k`|!c?oFp|@SJ@Ae&R2h5c5~Vs3a)6&9llo7YI|S&khpmaKcjj_!~^X zPP1nLg~zDfkMfVlf&0`d!_6v)y|z&!W{;K@R}WRhtB`&;QbZVJ%voV+>`*wBJi~od zT=Bt743<*uUL$tov_~XPCWMxYgqL^ z`E?UcM5QfW4%cbZpor*2`ui|gsMu-DphcT86|M0zd{wfpny&gl_<3zi(k2TMfSLoN#s@u=%+CGfV%I~V`@51zT>-h+BDq%%ybL3N`MN&=u_f&&J zh_^||tF^ccL)7ALiFZ?*Q{IE5;5@M8m`>l0HDKcPWpErY;uubE$SdnVfx!uIt=QLs zJ1_9j28z8}8V#jX3VYBTu4>y;yIZ)O;5TQ!TpX+Ki)eCDeIA^yw$0;xAGe3g=7ba6 z#bg{+64_;_}=%B?fMzXKECT!FWpdb{lK#iV`au$^yN{I}q*oo>Hc zY52j>4}f0*WRfcE|j@o zbYA(ow=V2r!trIs*xkwiF~`RUd95h*;(D^+AM9#yWWEgtt`g`&EK6uekT2C__`WW`7nH2tLvo+0aC$Jf*QJ0zCkn9y^1{#sXJ$qIO=g8T(BMtl1I7Ki z1m~Ixpekz$uvyPd{3bjWvc`b1LJKJ^)aVN$6;}nMg0|^tbG10e7l}* zYL2;9Fs!O8ezdQ7W4HsO*XvYmSUabDQGByT*LI^(VCN%iL%Jm8{{|(^g67De%9EkN zyRr4lP4jg5@GY5|y%ch;cmd-AewoEqFveJ;3STFNakX{RQtauDqq6se+Io34GAKM0 zZ_H;@5KH8Rm}3SoLb#TN1jEcp@M;- zf zpY6Pyv;kZM^APB*Vc)9iD+E^Op}LChje6clS(P&02-W3xVucG&mP6Ir{%7zzJeco7viM->-f%{aYE~&^F5=SB%G2aK5q_jXZ8TPceC%1Us>7UJrTDo`O^2PZQ?fW6k%~&DZmF{X%vrS_4rL5I&e7 zE}{ZuvxtbsCg@ZCi?@KN*M&& zXU2XqzdXGNiMjJX>|RulGqfskDo2L*#};3^Xp8qwW*WvoTXgOd|4hxS*AWfT%;A@8 z-dKcm>YMm8APKWGyNtk`f+!Jyd;znN*S_3-eLJQo~H!bc&MpMumrqvMQ+f8GXEae38}@Egug5z0U9E28Ui#$zhn$vNggYD#k9 zk1-q#Cz#dKVUVPM*~s%U%oyx8WL=#LF8U3IvvuG-axus><_tB$&Z?zxWG(_Ppt!=a91n?CtN3O5w0Xx!2uD+9SrO}mK?$% zY);E^K=8oxO%2$Uk>&-n2Pf>tTVEFBwz49>=oNJ=K-hRD41Jy*bw3sGdJ&7g1fNTV z6PzXPgIwG7$2kQ<&SjSgv{(4$)*ABXZij{<&@i<+6vK+h0#T53owrzuevi*y#T`>u z5$3k9qBR9c>l<_L@b_h&A~R2@iMY@u2FW3!sf1DqmqcT@r1S1@<%7MMQIk_yKy|9~ zMzjbQenrSNUgcBhOK3uIw zX2AvFP-O|;5RWzdWA0@r?T!U%nLiesAiqVgm+X)>Uf>tEjK2nMCbGYVaw8XB@b6Vq zRj}g%PniClU0eo?2FI8_U!ci_g`&1EPCCw84vY}}(MbtmO~PmlEDKjKtzcIFF^E0^ zM;Wj@u1OK+Rm1@y)&UV`b>ec&RQMgdY*v3$SoXiL{75EKSO(Kr+Z>jGqR``3rnr%f z79386X;D;c4|7A#48`_Vs<@HXl~EM|m&2NJxRJJ%vZVo=!|Q`wsez;i1c%lk92K~h zZ_Wy{6l5&|OvR`ag(~_1Caw;^2=Iau{+g$7)CRvQ{qpSi!uvs8QRo8OYT?lOhH8Q6 z`qtfBaoBoUYY}Y%WlQT{q+TJa{lEKFUs0<~?(Bf2eXTJ_ zZ2tlqkYmGota`R4B@OU3W7!y`2!(F_a;f#YWe2ct4n^PL6G>)MYZ-sfF{59Gv4P!bqNcG3Eun11hH7I~}R`pNzE#V{+BwiA!tPU|R zjX+{q!IDj)InE9R51?z?$Kt+Ow>IFpghF7}#N3ks@;uFWO zoEIMT;|Gcw>U@4vJq`T~Jei3RZ}4K_a`qLIIEZ1tqMR(u+{yYV4`C?tnIZt#RK7Eb zKj|b!U!0zP9Cq!?^{uzW)g}X;)nh?K3D6<>?%wBwsfxarscD3w?Z@-6#Q)4=rMV#* zm>%uy0l{$uI+~gm{@MCG5RN1$)hn^rJ_uWb1#MA*@FEGn%mS>;{0wLJ2lKkjV@gQ~ zsk-b2IVHC3L_Cp}OY+-N1Hg!BpiTscJcEF84kh7c&6ngu*uWPTjP4K!&7RAguX>?YY4|{4&=JR$ggRYXKW9$yDA{gE&L-e zk_cPjNpi4|oUr0bc;6wtn`g1DF%d=#)CEjyTk$$$MD)+cF}zkqvbc#ZxGJ4Fw+zxN z)(qq98Gqf=X`Am!$Vf32e$cUM+YA>v3JU|b!`?H2{!Ybr98A^`0KVEJ~{F~eF4Qmpb zL45U-YH~&6DWdYzkh%xtV?@7uyWCd66k0(#?Tu{Go_0~S7m9JmpEKI8D-~Z>@IooQ zItX;#PmEK?d@N)hL&qN2W&kxrncM0HK_Rdp}hvt^q6Dwdx6FlfD zFU3nE7ds+aOfE>4S0y8WV1miCcuUHbd-v$UQlET$8;yrcO}Hl#(N3ZxJqHm{w8yFt zmQxq}K#9y$bVT@-KH>(G7xMaG5f3U9#SeyB*cdIW2t=oOR=E~HheTOcE?%04HN!|g zhzbkYE;O}9ADI#IxXN@g^Ms(_oUT-m48!`lb@0h5#6(Xt+J`VB-Di`TkQW3gJG;4e zMwq=^sMQqWT2d@K{ij@({jQJH(q1p~o2^U*qp?3$e#+W#hV96A1Q#6p*?;QI5~7g| zd(cK+QG`NlvG^kVCV1p6Yl48|w4iW}ch-1HwZC~Dc^Y^++G@r+EqH)K7t%O9w@gJsK?~nkgNCe>X)Ph) z?B5g2QY}Q>Z-nF79UlzMGi}i5LFdJd!346{vs{REZ9R;AB7h}cK7CI^^n4m@#Y07{C_7xdybHoKz36qI9g&Tn@{cL0S`~39~k~0bpK?R~v7w zsxC)Z8+EPOEQf53$FJd5(szWotp?B}@s7{0LN4cI83V6HSRr_%6*a7AfO*8g{w-OB zct#cCn-XgPV++2Zi4bq7+Z-FdgQLml(15#{c5uVW7zMAF;R`>yvr3*JuOH*dkv&*Y zC(M~Py?e7_d#U5>%$z!!SmnVp*7g3aHM-KE)E$;|SCN*pGn#y#q0YK9k$i^$ee0nP z>*EXh7EqatZ#3~H*&N?9sQRF`rujwI5$n^te0Q@d`pMFf`rXe4HOvOd-Jv{KKOqX< ztkJrLHW#2n8Na4N6s1E8)=*_g(xDn@v=SkC3C0*?jr_0*P@D#YVKr-28hZ?a0UBDP zx99-%v8_Q{lr}~_=pSoa`@aD(9Fy0mF?An<3zxpGep~dqCh(yx>RB8^aN#wpgmD0%9Gz+yTv~2p4Bk{rvt!bEz;k5WpRXgbE+$uN7turyH8 zY;(YL#&a0r>q8`|V>qo2iKTvDG+@$mhWy5LY*1igR1&|d95BEbOYXyFYeS~^lVu)a zNYP3*pY+XJuInu`MoV<9;;7TK3{Cyy7W#)8BO`@IY+%rdiSS!?*Y1@KV}6P zkJ+Ase1;vDZ&Fph`##M_g{!6~A^Erz^*7A#dz*{KYUCq!Y<)ft;6L9|llje4+c@;U z9=RuTG;8jC^ll=bcHS+sieYjM z>5Bo0)n_%M-~qaY+ILtI+DFp18{M#=ZbdQ8Sdbq#X0L;3^#*Oj)E{2PI;9&; zzGAPN$vQTtr#%RV(?tQ4zq#qqiV^8Dvi!(q%%7@P828_JhA>6Rn6~UNH}Y~u-rB;T z)9#z_nluX}Z7g`}YF>2hh=DeiqLQu%wCjNh3!v+PolX{rd2O2FgJPxOskAV!_UO7$ zBIveY{w&`BgC}Xb<5t3(iyHW2^YS=YJGCsx%f$)G#YKC=@3r(jzD(=O2GZm8>l;b1 zrQ*8#%cUWL8NAC(4<{ixS>ipd^0J-V8MGsAC32~U&`G=MbZD|KE?SDV+8muN4iv|3 z$_xcf|2BBuV`Im+Tpm3Ndxki&Uge#pLnIfG97~ktC+gd?m*wCW#h;xX)=z) z!id*ga3j1Eeh|&zHa&IKtwZNx-Ro??<}}ZsIac>yEvTatk7;l=VBAJv?{2vox)$iNE_5rZtCwLTYZrKwkv%YD>j06 zOyq*emoXRbbIzE@3mAD);^OtBZ{?Y`{UZa(Fhkt1i@UtE>9y5S4vRDym`ee=<5Xq=?v3=R%j2-?j` zO${!r@G{wu7X(Gz68U!3YtHeeHn0Yni;pz@NKpJ(tj^dEr>{J3=fUaQmx1Z(IN@ zou`~v)=PA!1)n32)tl2|_S=7%cOI?7@D5q{M_@jg8*lb_135?5uM<4UJ!4s)UU(z? z$9JEW*ZU=I;9t=4NWEJ^w|M>29^uWMEfTw9L}4$eUajJf2b6{k^2lkOJ)`@;AYkZ* zQ1~Qhw|)8k@W?3-h=$Pkl+_1DgK&JRmj?$!-r3Y}cVYXA+4R}F3xmv^3Z0`7gB70b zt`Rc`Id^IM{GQ3L*)wQ8x16Ws(@9`CTt&#okDIl(P?0#!gR5)|I|8Rj2f3EnX+qExy75h(0PEiQj)Z!h4Fhdi7QS_w0=sZyB1Q zJw;b1H)bz)FO9;VURM;~0v`T8rCGZZ62f8)c`Oy$+HXg^jXP4JsQ&rJ7oy1P!Ap z8f%jmV{;G57{#Poe(GfY#X)+A6d&|FXjRwmB-YJS=`-8kAu+i>1j-H@}- zu#S1nxB}RxT+!9-09sl{06ncM&$S%-9@?9>9#V^I+34WbwxRAD8~cPCA^Wvgi5!L> zay(Ytw9)I{$T6$1_LJ8LG3!P{34jz1gBz;s`WF;(l~4^B-dD2IA|aV9J>aaxtgb$I zp-8Abr!Sh|R5~a|QKU_=8}_M$))eqQ&JSvOS_T*i_r;lbLtf-?4EQKeN!EpCS5r(&13S#j#uxittaGrMpvD(JpAdAnHx z)RKdYP9vsGp>&xO7PA1eon65;uhJuW^3)|UTU%p}6t^5blEg29f0{#ug5!bYu_(V; zOd8@dw`P-=x3H%UKH+t+g1zGZAI9D(Sd^&A)?K#ky=>dIZQHhO+qP}nwz-#W-~C7T zjobZl&V8tedaaC+IcHYn_%au<=()uabF)IONd24A+7GJ_b{YV^@Bt|Fnoh9M9ddD) zie9}NYG|0xAlMywbl)}(-A<_29UN+;i(af79(n}4Ufml)YFMmZ+8c&yxU62&8}4#A ztzN+!R4v?Yx#t%I=4%OG^}5ENgIuTi5i42%Gd~Iv@VyXu0`Ebr*h%)}NkZ$HI5SBTE+u!4y4s7g?f?LP;6tgt7M}Cw2T@8lAoH*)JcS0$k`Q`@>z-IiwprzGa;XVwT)ctSKQ*j5$M_HTJu>R4>ey1L%%*M1 zAH?q4nj53etRTH=ls@Fxram9kqYTB3*?6ARjj_2oa?qOx?qH0DYTVbLPik+sDKA79Gb3ya@~`U=b{w1WCkS>9tYF#wS* z02=~kM5y>5Fo?Q8I>fOETH#{Hq0_{@;LXL~;;XIFAH>c$I8P@YBMUtjT%VE1C}Yk% zNGjk|(i~b2%2ZrPD*Pk~q={!45?HRDiN+4N)>66 z9~w!mZ;$|YMu2LB1VNlt-{7)LwB)dA)$+xVE?alDA=Y=|tT76ajwA@L0}qTtBAHp_ zkaiS#0Jc^vb{(>7@hbee7{eV~h$h4eFZIPBIxFzD6V6~1VYq|?3A8zFBm)D0xoLA+ zO}Jb-oL|Ar)>LS1hD4OGAZG`LfE=Nbyh($4I_7m0yI37IN)ph}fPFTm2 z*a`{P;T}(9_S3iwI<`Zg^yw)5vko{ttd0YM|7;%8@`Qpv;E?7m0rPe|R>wGY4l?lz#eUd1ifM&OW68B_J9(fnE=h#;~ z!L5k38$DFtuap}=sXLkCY;jBhgQ?2ZVra zm^gRo&$_xWDD}=_gsWdM*SRY6sc<3?+vK1OO-U18+(J-!$DhE~2YSmJBAI5HG6=7K zm~TcEN_rjj=7uCxFOF}Wc+kFa&s70Ape3Z|L#@HPid~q_iX%Lc@i+nSclV?+JX|7q zE=mX(0_iAu_esygV;MP$mQ14qK*%oT~$#d&)|ml zi*Fcy?L&g~t|AAuwbtV^Yy_G;VVg%)e$(6YMzx%CUjaKC*yN=b9JxO zlf9u6K7NtaC!1KR#_p(@#?(AqjUO;6VsO$?mj2D_gjdqxH*Y0rB?at_34&e{zLlKz zmhmG}o}|@7*u*aomhUo%&pq zttPesKC(c+*pfVJ@*mP428{ZU`@FHgT5o)oz5OBQPvkDeUSS@JIYn_87c^FVcUr2i zx@R|{Nyf(GcS5SsayzR*%AV0_1}$Bm(oCRc>0W+Lj?EbJ&8+%sh6O=?g%uC`i$;d% zYiNuuXvdc}g$h;)1Y^Nb=YZbQ2(3MX>(4Ln0=$DLCJBfgBZ;;gI!I1(|85m%Z56O3 zU85Z?W?aRm22;BcO>q%Tb>UBS38>Y8KdpGO8Z?mw#*8VBvvOk_uyzqyzlbiMgr&|Y z=9u$_X+br2!NT$x=t7xFX9e{YsP-cJQAjw{-=Ia)Wye*a2NZ*G&yvxn+ z&4ah0p9gJ0#}py0;B)fMPirkD5~w`(&F?51xpYi~oZ9fm-4T&WM$RLbyN) z=Dd{2@3olgOixmm+i7@7&2~5CEDp;Y(&gHf&OJD>f-8p9<1lbF+(O zg<%=;8e2lk3!w}V&p<1+gwShIjljMffU&_cX8wQzF{B(AvuFSQrUM^CKOSb*QyHj z-DJe52E`Yu5-?GKMs7ZdudA^({DC4=Mj_vx_@Xh8qM7^V-nMN9tIx_^sB+KBT`^ln zvL?%C@=;a;;lLFuWVDtn+PKgchFCEOoJZ*D^*y})`onvByzJqaQO`e%mO#oo|i9aeU6lCh!_9%h;`DRzBOl%%CZK|&@z#?QzIE8%j% zf7}0|0ruob^mxMctm4|=*oJI#M2B8*D+Z~rY+`RsI((ixV1+#Mnm!T~b;bsNNO9F7 zz8r-el&l3YV$T@&8Ze@(|2*Rxpjv9!MpG=$LPdk;thBFj9o=JuCsWs<&dNgNC1BY$ zh@A!mw}s0d`8F8knwGoNFAirY*8DnE3!4Ey@ByH85a}evIweH8#06$zbcZ*vzB6a~ z`dYc==glbZ{gr%K5xfWq`?|j3`9`S54PfNL*LV+jyfa89R$;x>pnXVHtA0%wL(zQT zMn8~7q#i|Sd-tKK52nO(_a`IY&)!(QscaLQ zoZ92z@#*Yy`gqECzxLDf0|wZI?TZ}XZAS~48#pbR2bW9a7I^?oq)YUUIJQWnOY#mm zt|HbW(jfLA1=9<&8?Jwqx!{p{ph>h#;ud?rO}rIV$R&$9t!Tpty&cg<)-H0}Bl8H@ z{q{c&Bc@CI3P1M5&@FtfOZZAZCL^Xx>K1&UoRE{S4K|&MLeZ*17e+qS8VG%ct*C1IM6}3ej=FjdjOoaxX%D+#?BOUPiDK}%)C|Ec)% zcQ^UpWPCgoRlQA5#x6%!QI!&F$^$4$QtOOG{mtu$mW_10#J0Dfv=86IBx{uzCp~`|79AM}1*R<{rA;GNUgwsSRE|}*aC5RTyZ9?CbjXeLs?LXLw)QVh zr80>2$V=>VwmkBtRhWWUV}q-=V9i-A7x#e*7p{g7!TB9rr2)Hg1>INv8ac~9_kANI z6*j~P`Lq-Ys>t8iy5$0YS*(?u3kVZ;)oLNgZhb?NO^Vp}WkS0*?O2vWY=YhX~JbNic~p3ERM*LwB7} zX8MXDP4;DdOh7p zyo_PRFm+Ca2dJf!*?*%MeqhVsL3}_Qov2^shfa&8ux-h+>v4Y%Uk+|9kXYsM4D5hQ z64wk_J+5)PdHT1wJiOxPxQ6rKA6?_ygt~j8+J?G$2DiFAvQDmfbfJ^Y^ZU!$Si!pL zf2dS^`0k z?SZsFWd|u@KUqQS;r$&sn_z0D=0$A+?Hgoh1!1yYL?FQR{Pq2D#)DG}g0jb%J#y?h zm(X549j+>L^W_fIZb z3GD9db<#5{4F)rZV&o33HwiO5pby*hmw?#{PG_9K=34*qLx&>KyOoy{)0!SCImguYNw%=obM?H6gWi9cz+Y`<+OlKY;h-_iWS3{vZ(jo)qgn^Ur z%Mi|6P|Snx1F_-#d*)ACie;Q zYM8q^EQPo>h=(SWVtmlBNW4h1$0+#lF@7qFFseXqN+8M!J_F)0=VtdYu;Vze!oHAV zyeZ;wD9UhZ5OWlMpJ>+Jn?H;Lf*4ez3W$dk)ZwH+Yb1W3P}bh3e=_@cH;Qo{hPFmIh4LB^slQ*(4}){L#}2@;)pQr9aTF1~$CT<66+pm=A-H0>Y6(Oi92b zNZ_zhQCX>G=F6J-B`rdFB(ZUnkyI)nd?k5@U2bSkQ#&=LO3POGm005(Z zSCape@%`TwM9JCF!q)7+tZXqVT1wdeF}`P~2GfjX2Et;Lw@#3ffLF6U> zo8obovaOw((S%{BmTD;24-HHV%mM<29b$dfoT$e(-RV?lC&W($kv+at9a^9%D_+YK zeM=(K<9+Y>Sos4KFxuQNe&72OkXv=G%96IXdhK%bU232b&EdgEgiwL0y0Ss4EP&r_ zay994oM@3TYZ9=r>~J%dQzive;O#Soa7LGz+OWAzf&CJyTYGO@u3lFUkYi$h`zJKp zrisA5RK2aLBj*FSNp;BysYjtf}>&q(ClC>Gi9NMzegm z82N*HN<^#f1|yZo{{Hvrfj(B>F0g`mBSQI%S*}>VGJZCRW@(d=_mC!wz{^Y6peM%k z{g$5bNRYtii#wP@g!LduS_{8b*KQNlXdxNrxlJNH@rRQ1zBLkLR5@De9!58ru)+{X zA|T@TSWyH{iE`E`GH55KqrbvPlMvXhGJT*LKv{eEk<#{{H8Sn4F_O#u^pE*21jKM$ zZN}riZu;|f=V$XY_^x>49!cGdGGg4gpBGG6SS1gGg5vyLRiqo@{^M{i#g`|@+eA1~ zbeRJb(LT<@5Yj#^{^wQgm<|sy_Vo>!Hg3r^@vJ=W)K1;M1Ws-NhM;K*^H1FolArR9 zi|1cWd3`}x74!->_6>cY2yL0M>+ppMiF8Y_9&>2*saAle?DGl0Gko3t8l5@dn8Z{B zG(|83Q^q{20K_+z6e zTOIepfDA7`C)qsba3l6)>xjwguerH-ae6t#N4OW5{T4vS6E&e5zkwd!K-lQzNt2@~LJsD`*hR~RG$oaG2f* zc?*^j2)+!p#FKJm1l5z!&s zmQPmk#xO=A*d!ZCGldIM`4*HcKAfI-qx7NBZOi zF@`5dizgwuH!ea&)4V_uWC&o4t2P1rqFlN|b)?3`gQ^ypf)&FG_?;Q z1u3AD`-%lkT5LzQOt-e1W~WWfAbTW_hZaVSEej-U(L8rO(A+t}(v>Q|QPH)H6AY z6$eYuvlrX=XUCDT6{#fLa-+*lS;={M8xilF_;%N`-b=&X6S;xf&E|{YsTKDe>OHoU zGD%v+V}m42aKtdT#`kU*rZIyerZg(apjbMW0}{rQTZ;c;y(q$jQAkBTn4NawH~{hpL4x z*luS!g?tM<)QQXZ)__Y<$epUSKcN3xGxyIX$YcM?kmWz!u>If5(f`CAD4G0!@Pn8b z0jqy?I%H3MW|dj>9R5s#URT@kg&ZOzFpU4!3d3+PbNohA(k~O-&!10n`hrAUi!%(< z{juj&_H+o5Kd^wGoE{&BrYl5swKS{8$r{4pOE*i~_VQNHibU$U!rC-4C&|W^_uG8> zy~hJd?)QW=*rJCGlMZ?&*jzy^wr_j-5oj*>xGfo*-L|a6o67H9B6_zna^`s`mHt6P zv5GRS%4H&hsQX6;6#)YG?c5m>{tRg5n&1v<*oBYK(iURw;x0wfSdP2OT$&WCUX!Zr1^)ogtp?oh28$S6=OJmFG*3M^i>*pv%|a z_s93+p0)4Js>-UWf6pZ>ozKHE8=!vXTgd<=OPZRKRVR8Lw{ChNrt)ctRBUYq9?cqb zXR6qVcPGkxNj$B{=189J2L%r*wq}It#fTK9PAFpafinf!JW;tsNNvoMc~LjL^ie!1D;K{T2?-;SY2Eh8?sBy;=do{5*(R&RfUStU8eR!uH7tI$l$L7CG8{Z0{u9w3*-o}3|~<_H#G zD>;%bE_gP*YE^4!@-o0WXcwD=bjwzuVp`I#qMg(QQ;HY$(?u*EEv7XgP*bqi%rz;V zEgsFN%1w(^HH)gqpk+%YusW+3{}ya;4MA5mGdby(xT3kJ%cV7)BaJVxnqNOH3#8@O z+B^+<&dj&S(t$L~I7520I5p2aEsIcVNWyki=&7#}>OxrXD6^+k776P_(>ioMEt)|0 ztV^cZC~w=EpIV$M-3Q{dYjnlu(k`|{_0-FJW{Y(V_p_!co|xcWJ6_m_h;=23x}l=h zuC~m1wOBP<_1IUq=G5xQg0WDGb5Qcib^oN+`fNeVS%o=Y*Vp#sThVzQ zXk3#R&QCdeglP6krrpk;uylH_75U5+`Ro;a`)hXBTJb%Z^F0h!HB0(de-9V+2t3<) zHn%xn+t78__6VK0IW@mFzq(wP>Appn${(0HzjO3_hSYv1h9_OVsX4#8k{u3gl5xqKsadGh&-q48=_Jw*>!7YG3=8*yaP9BSne6A>wCNUf%#WQ$|sM1-! zDgql+_)*JGz1mvAh6gXY73gfD&l);3Q0|Q!%>V%QUWKK(g{76bR%fldx!u^A0cd3$ zuk{CV>@dLITP44Wt-RpoYk9$0U}&&2WlGh&JPlD$w$O9)qe6KlL6Iec4Trj^m#^oM}AMa z%~xS4^4SXOLbC$Uh@M~}zoNjxSLpI1bSbT^w$4hc&)&r88!B)`du^HDh9l?**+vU{ z6H8N#g<8F@**8{1{SGtG@o$6Q)KF+6}2X2CaPRRYie@U6H=ZY zBgwq6yB5`}PH%TJFy_9qyTC=nNC=z7i2)<0CBu58zYBjI8MYPtP#`l>_%al;3>kne zXi<12kcB;a^yAs)IXqDJ0wxlfE@J!x^-^u6MRGVdpbkrQg{DXiEa(WSF12NOO+u7~ zmCoA2Mv}YE&fLZ(q52Lkcxkzj-*C==p8MX?MaQb?FkxrKn0^sY=JBxeujlc5VyBAB z<>kdC_9k&g2TZ67=wMDy!0djdJ~LWmaGDqq&w#l%7j1;eDM%|w>HH^!&AmDKHV1eI zVzemH!m7R;aikRS#yW)S>u}qe2$w?+N}bb_^@hD{Jx?sp%!{~KJrhRiRD?i5QB3t9 zsi;;t6HfT6Xb_C#;@;eIUbGC9puunyGMXARvILaNt21a<(1AOCEU^5Me!d+{^B9o= zvF%}_c(aqF+i|zNnwmb;Kun965YIhDyY10{&3%Zf5XfyTD6kGOgf$IN{@|iM7F8l} zq?qRgu#S$+^*9LFQ4@hhQd@s$Exs!y^az9n`8HKVOijK1KKZ6skphm8ju&^cNN>|c zQ=rYLs8-;zI3wG9FU7ip=Tf6d0c?=-=IRd1h^6oq904+-WIJ-2V=Er}HfqACeK*B? zkj^CTl^rzUM8Vq&Xu=JD_*)Ojzu;>=>v|(u=Jk#G8gLQstrvl}rA%v)hb2@CF~CNWQZ~Gc%tq4rwkN`^sYS~Rwu114FH~Z^W)aV#YY4_ZHZ<*e9-K3{7ODiQ=%-!RtmseLdPEtxd^Sx+I+FnSp78a~CjdXPk4Y3x^4XE=MX9Sy^;ofQ~ z3D%58eiq^cX=hD@aB%qRHB_}jPhJDg$}SRiib~pwI(aGz2AEds zaL^*HD@f-#*bt%nBuw*^Bvl54=kl!xkplbrjy5kL`p&@%J>oJa6@0A1#!8fX83LUA zTL?|evC}%7!oQ@1P+URxo>CE&Z7`!MvYd=)uci8G@DV{$ljK3~VuD;|5b_>e4;;?I z;zGFl35b@Cg(CJ^5a6_%CC}wNNI#quANNUvo!%57j83oSe!{!7su`p2Wiu zrH&=_wqQg!^+f|QIuPEHO7y)HivooxBqR)r3&p5uKIL5N^)N1{h*KN1+H={3|n4Eo~6zJq*GzkF<@OpXPhNW z3sF$RtT9QkWBcvFX@MU5g|sNsKmN^AZtk z#hq#?8yl%N`l!QTPqwq1?-e;=(L=~B2H3;uCpjBO63=td>WvfkDZpCBSH%TWVM>vy zt!>b#b{w>G!>!{Fe-nXH{W}OSAjV3KZB1zAX}7vCnrUhkq*9v3}||ayB{~sH#!hS%4`~{;X@WiVHI#q ztsNk}Si`u04j~o$*>f(qMOml3h(ZZ-tE`aj5$><6YD=$9$%E*;#*=(@n^o;VUZxR+ zwtq8@9cF6Nk&~)Y6dcz~?l&+oUOsFG3L^2>oHL`204K(ST-rXOTNiZ za|Ju)BLy~`)#UXo)^LRV;A&e`2$E*+l^+H)DeH+Ljknz)$E=M9d-}?K9ww|cwMJ44|%pW;O zntW&}ZgUKavC@kvfOqlO%r2p^;UijHnzJm1Mz-ORSU6^&ohT`qORcI$o5F%?(i_yW zpazlli?4-Gga2P6(XhuW`t{qF&N;^3EFUb`i#rf3PNl_pB+gpOU_?EDE9e&}IHg`W#R+izB@S*I`yLt-l&vrWKb+l+ z-R{%MKBs>#KWt>4YpD8!_Gm5D^s-LuXfC`DqzsOfP~MVu!^`T78S^Voju5;VsW9$@ z3>G6)fd5I$3fhVN`k3R~nEFgTbLe_FZn`6H|L0MiM}W#Zj8+W}^z>>`LI|lU8vOMp z97%=5`*NtHsp?lq*>0MPW`)vvzi^xJEXi zjSGWS^9uz;5OQ`id!S2DUIsm93;YOL$tj?`xgUQ?xwce8AEDW&@L2yRITP zUO|}|?275$XJ^yM@qIh$1&Tf<-05L~*60dMvJwj)?6oldNQ5*N~-v4$h0!;IkQwwk`+pjVS3z z4~Q7Z3Cp;~l0Ht75}yV+ix@FtlOzZpj!P2gFt|e#<$B}gE_+r;9UPA;L5r}#A$6Hs%g`br#wlvkUW%rT>L)DV zoX6j6hF;(6cTKlZLWms}#B3p3n(-*EI!r@~X^iH+%QK0!%C_TrSjKE9WI+ZQ1F|2o zTH0`KgP>R@YeC;Uh*J}%C@?S5?0_#XrCc)Ft;gsCQQK@K!B+E(4~jQ)#UHMoKVY!o zl~5Z{;e>7e8vwX)xVA|ND{g?8;C6v`FPkm{7nH#x;|!aB*`LVFjV?vr|ZIUK->V6Vs9W zOB6fLStrW2d{2sTmH$GL8Wg`ff^BXGKWd0vDx1T*E-``Vw6BQMOwg(4y`|hK?W7pM z67>_7-Kz|e+i|T!`MF>vaWRNs5}gh;Z+v0dIM*QM%&>y8v>qqj8s(Ei3!im`g~qUv zrU9}tl)#367G8-$x!3K{Yj3B9E_l#6(W%}xL93r6!+elK+7+8yYnJ4~u!BMtj#yL%5&VAOuReC3T17|I3EU6;4kqK zg!}h01~d-Qu%;iABLFTzJ{6gsR0*!w8s|Lb6Dgu~qOI7@nPCm(ad@JXJtX|XY>wd$ zcYr4^bQ`_wqHq@FQKV<$r6COStzpS{#lo?1>DZlk5j87YJTP|~1tLVIfuA|ukl-_g z0_~m#CU$C(jb&&WB}#-SQZTbY>^sjENr4^MK{+K$Ram+~n0jS|QHeRibeoPei__FY z_+_S&LUY(rDVtO^om!gllU2eFo@>pxPyaUSO4XGXX}%a20~_>`b--Ly5JaZ^!yd4hG+rIcML z+oDlw!=#fv>e#Pmf>*zYJZTgM#zn=FrIKYeQaEcQ})dHKRy4Q_^p=5v+Y^C6j?Rb!oM#Xc@c0 z_4pb=1J@WzR!40Vt&%fzb`FHhm{GX!6GF3u5br7x?4Yy*Eggdg109oy@~|`_dQa&( zVQZ#g*19a+-L-=^lJ2laC;Oj{NT#_gk0=US1oTXA3O&;ZU(w%D)-znlym1uthCF(8 zYY)_3|3&BCnt=3W0KmKz^t5~(GY@dwUf3<4i8)zL@13*HH|f=ZK+?P!E6izWd`t*e zd4xm5dk(Ov3t$7wPKtU^7g_hNx-rh@=Mf?vUe49n_f}h|P@mNe&YpUUl#6i>X>2A9 zoVCbyVeQNuE=<{U7l(|A)5s}{!n$$ZjEkf{Vtz{66t#l44&h-9rR`WLxP2LWw5O+af`^|uY|dr5n94NsKu z3|TGAcTk|ja7L-O2=nn3Opv{-xY@9n%qE|u8u9ntB z2IT&5A~zsV#=5X9k;>)znAXG%0F`jtr`=#*4N*yjz`SWsvAO2ff$^+l2!SHU;nOr= zbn=~X6mU5bbcG9q82zLi-Re(8d!85<Zj-$cO6D%qbIW3R&EoIW zz>2t%lXj)!>|n8U!XRYVw$M4uIuo;5bI#y@ShqE7xipNS$lZY>AJQl_p@SP{WdiY( zx+g||>i*iNc!7f#q3vSnSNF}iw*c2{@g;= zOOv;Z)4;Ru9H!=jdC@djUtZuj)J$?IZ#sVLcj9L>pPsq%H>%)qD9f?5HmXmJ~Kq3WlU-8|B4JW+=zcV)z>)LqwG3Vn}tgy4lX$iqTxw^zI!`uoW> zu_JvhGKO3am#l;8Ol$G4)R~?p%LeIsY*hMTz5BrN?ft9EeIbP|Vc5ILJyhhP0w|sI z53668fUVOMl-}0l$&{9+8Z$NhNYx=%sk@A~8u}j7$m=^-=^LOWz#1P0Y?0qT4E@9G1V{7=Kjjmm!+i({Jc4IUF zbdt{OJVW_(qh2@|SJ0Lxsa608)p(lBI_>~i(r?c1j4{_n4sfcR7J^E@SE>7-nV2^U zotH&l5^Ud+b^9zOJD+2lgSlm9l65A}yOde|O@%+{XNP7Rxa9!`7gv8tT;NT8_!`AU zW^Q>w8 z&~vhg!G*~qaQuZJ%yUNx8kr* zV0~Rw%O5lON;SmCM{>Bt<_9Y?J!86?;vq{0)I)@udyzHuvWc*k{Y8_2^(eRK1rs^A z0PaC?v#G$5c8@(N=Ovq8NLYWr1kw?dV}!FGMCg0Wj(<=|8v-VyA&*0G$)HgE{|-_ZT6yc!)b?Cb02k`l&?l{s=PQ3RcAj4ArDQ6+gMssQBk< zZw)hWs0mF*Qf&C<{@Li2Ce{!k@4$?1L;D9Mt?PV!ZU8Lw&nZl5ZAt;hd7|Mq;27|N z`$Zdb8!l}6od31Zi3RUFhBJ^&*Fa4WJ^l4k8i6TmeBgCKxz(oF;>II&qpX7EXb@Vo zHF1V)ak&&3(Ia4IhCSm%!tw}Rb&oD7N;|Ldl_ih|5je0GkRp?8)a`Z6PHQr!mf2qgWU#!0-Nfh^0D18H@l`d`~f*o3GzP53ob2lH7RZKTL733g^ zGmd?m|1jd99*BOH@+I9-fF3ecP zffQXoxG7bSFH{3smVF+si2Q^|7sdHH;x ztHl5V;B-At{+(slJiuA9dkHRVaQ`lipC+H-&7t(GHH=?Vr5;ff>bNJjU1Ak2+@UfK z)pZ@4ka)>AY61~oNT9h%-<1CzmrWlu#*Ogi+G#!2`gJoSj;RlLY+*gpq-%&>MOMn2 zCtdr>qv|Po6K)tUTnNn0uQv!U2pB+aXqwZrq-58G+}?9@t~eGy@1x~6GMljqR86VM zJ}Nh)?_vCuoT$u%8XBmHp?u0__+ks68UN`pHoR#x*6W;LULC3VlU`Z2r*N@@phUKi ztKUu}+6Tekhbt^=Ys9|Ab`e8C*(F1H$uAc6g~yHqFaFE872(3z7^jt36g6W4e@e#9 zi7`cK00qFz&rxNN6wpBNpcYeR=#g2(jXOogKFL(?U0B48Jk^AAl2p&VrBFNafFtHX zn|jJINoMqpBKEFKy~Z*5*r0t&PS@`kRMd?y6@_y$qHgP)oTl$lQPd4HB@^q&l&V!f zjcn4I?Yn|yCFj&^IpUaA)D1L6g?pl+u6s?M7kk1I`=Ci(=af9x|Bw;;prNjNOP&{V z0z1rlzdaE6aGK24C|kWp{25a3EvxCl^a4y?2qL9{Zi?t}Yj8TbcN^Q7 z-aTf*Q?J`9vfI{Z^U#}5wSn5`P0}T~ zTc>)>TX(ZY?!8v|-~x5?eBle+rO?|Ku|qx8CjOPZ$aC_os?r;?V;lDx_2ve?MeuoT z?6&#rX7DZ*`O~$*^Wa+-4D1X*d;41T34A5s;V1qOqF_q3OE*}ib7c_xj7mK-%%T5O zwEp9}|H<#AZRipF7kCeV3(=W1$tT6PY148H&qQy?Q>qn&WR8$K(3#478TjwVYrtJp z&;Emz*MN=-h9kUxZ|Qgwe00!HWzT-e2hJ}ZJ$yjzHPFDTU~M0{9o;cm!zUu&ekS7X zfxf$30Jmx!Qy+lnAt&Y(+Q5A~udHzleHcx`a*9Sf&BZaY1Y{-G%MI^fa0!?7&JxtR~WC3-UZR%~f22-;Tkecb@t;Z=|P zU%5rDKTz?lQt>=#g1ogchOQio?j*AlD(qxxLL{Hu(q?Oe)ULS9^_K+^J0Mi@f9DL_ z21S#v@m@qYRQp(vtg0U-GO2J`rBt29!(3Ox>{yPEd6QM5z}+YywX!+=rl=8z2;PqE zBOX2lZo?X?s*dS7R}a};1sPh#0^$bHbdSf{i<@!b!D6k^W3LQwHq`8mm`5;TY z(7a$|2O{)>n-b!gaW9hPkB6)|;1ZjCTlsuu9VQ(%$I9m3A1R!EP`LExI0W89vFu>( z+wXK^ouY;gq`txR2Qw=#G94S>W2FGI!m0sZz-Y(W5cju`zF?}F6w{ubm_JK}HD=)o zCHEixAI9D>NVDkc^32Mtv~8P}wr$(CZL89@oln}Vv~AnAIr*P=rla4EnCXtVH*TD- zE7plPd*8Ev>lD*_?qI&5EEM$V%50hv*qjPN6trI;iCIPEI&7bV`MG}}W3vg^?r@KQ z)q(iU&{`Fy`0k426vVy(-r?~}HsK(#jLJHJ>R@G7B0zCeBxc_)$7g(xNK5iSzhbIj z%!Fhh@eSxFq)>jPZbn&o6P{&q&myf;w8EkS^@Z6aI@H^;!bJsLh8Eq2zG_M5>M6D3 zP5);A_&>)(edBLCOnf`>Nz-msl-{3Ml3Pm{A{#347vXi!i%5bsh<4E z7p%zzAH~JD$l*PtwAj<+;YqzC8_f|;iaqRFtG~+zsF?%qlG7jS0}jU(vpo07!F-=g z+`jx~0XVJ+-JTx{l3s{BAuS~f5PM-x;)cb`PwV!Q!-hDrdL{dSr_{jIyW8ikS`EAMb4A4JXpFws@f0R!zAj|AE+A-8yj9ysi`H$z${qUar|{9tOIau00B2a^sAn ztT}(Kb&yg#f0Cugi-q_r*Tp7G)}+Mog$5@3_=?ws&*H0R602tA589*ZB+Nsdv#tCM zAqqf{_e`)~5h%{9fJ&0p?SaC*C0veSU$cms~ZSL}c};73PO~hNt>$bLLy#u2*{1 zQt|%p>?^#TPr~iCEX6o|!Q_LRJxDJg@|_C&d`eZfNI*|_MUe8KfRsac7r}Q$9+K0&4ZoY7I&RXauN;S03VEy}1M* zjSnzZU6LvC3!VLaSp2P?3qMW0+8p@BGSr?oXdMu_6Xseb&rD+`-u&*R2-G`4*fZA- z>dFnTaks*aYyL-EdTwG;ZW8DM_@udf7fiLKpc5kpV@Y>OS#f)WFhuHg{TYenDeT>` zLTDGL$;Y~UFML2OeyGETNZN>AU(*BQ#LjlW>IX|$7{hQ%DaS?2Nez7&5dIr#YCgA& z@S;>gG2v{tQMZ~f8%45u6bUU~RE{NIRx^5v5@j~L9U=afXjj+%j!@lX7+)|zIMo?jOtFF~d~wt#8m*Th#r zZ4)KBMH&cpT?+tT^SN&{wiI^nI{XTMWY&+9d4?W)k^V{TiLD&=n-}G`4G5w+mOINY zlME~Q-=G)x<|fFpu~KUsb0_4>5sm_m3Uo8)0&U{+Cz_D0O^PG4V|l{ZSN5J+Sf6^v zB!~0e#bo)V-y`X6g*9S~1PDjN=1a7|x`e6t*G^68)c{2`zDfe}J^EHR0hP9Q4fQq< z(d3TYfaC*V9Dfz7j})P1Prj_FT}Slw$J23(oMKie4hF1K91ze9_=u)D`TXc0hc$P0 z#O=vh8m8q4_u+g5pFrtZ!XG?ij#IoOtgK;f0aRW*hZ{Rz@>4*LdDPO^@wTJ!!vj7C zV-T;oB5?DSqYVuh%a?JWKJ(RMk4@-~ly@7V7&h3>%40=v7a(jVe z5F>a0AX}#ubCn5Z#8SG<*BO-!qtNwLr8B1bZ#)}@1IuW7X{|kV#(q>5Jc=DWTLPB0 zvgXbNrQkneyIxqgh>tE%ddT(16GtGmc#jLKO?yDUmu4Pp31ae>ENh6+TxLkc>5hgn z&VB`JByL3oHxU?&D}2cX)oD^oFRbN>YWL6w(n_aYl0p zN6Fx8B93ppah}wb{XjeA>#Ii?dOZyTx&Cel$)_;pW^R_;k0P?i~2}J1mqziTh&eng~e1$sA#ZtQM9*4{vORuAhztVL@q~A`{jL9HQig#+`$A=fBw|Xa0P>tLpds zu-~L0bEWcs{rU-kLs;hou`TkW8|4X$OCc3;k0~DLDDxo^*{yC+9c(kM^KpkzZ-J}B z(ZgD?pk5t5+(WFen#rhK_~zdTGMcsKw_ID9Jo~bHuaH%qImW)uzW~yk-+Ks3o2)9F zTqD$@-9^)?HfmCd&cu1~p9oSQB$7Bn*bw146mL?{o6{92Bk@!edlUeV zXv@FU8Lp)CP&RJm1U55LqF)FHDIK3G?*@@z9U2*SWTyU6LP*fB&c1xjR^C0K6G1C$O*1pKT;yX%(a@Q7X>*oYFgg z0aZ6`5dC(LUEVPl>lFz{me7Y5J_AR$v>uqFS+$kHC*|vG=97aJfa7IyxI#@mtgFHC zG&WYJs_Mu?YH0BQ+LCchkstwr$r~~8HR`K62oOt#j;`~upJ%dnTBCAIC(!oTaYbb} z^=g$_wU>ZTl*^bC?|r9EXZ-^DEvelkf0SWm2N>(=*F7jLJ{QWYp6yI-q4a4D)G2w$|G`uTn>w#%#5X?v5C&&G z;rhsb;H5T`X$hHH^9MssbA)Ujte_sv8waaTMAIpm+*-DGNuqRlu@9(QH3YHtslSZu zbphi##aE6xBR&+2r_Gy9IVfbw{1#Y=Q=y7#;4n@uYroD6P7t$Wq=|-N>m+cD64{5y z9HNX<$#TPW1bHpys`AN+)@gIYt#MbILThB)2o*dwx3rm%SccK(lTxjqTeY=*eyYku zTVR7G)+G9}t~vOE@g?rDf6#R48l0+34WckZxv7_&!U;ARxe>v%G{B=3Q2tB&#f!2T zlFF-|MYo&_z8S*W>yq6sC{y=0y>I&Hm&62$h&180exiL0mU+5}AaA_?KB}(IJRWCc@Z~A4Ibwd+Eyj@4TY~Kq{aS4`@Eu#6Qy!T`6|bEw-_{yV zALrPh;U;h>Z8=WSWA!G>J)RvC{9D-&lf=Gy^;O?LlK&d7o=c@Z?%~RGu>s3y)>5kmI=u5MP-+YobH}? zTt0tAX!|)r*!+#|7#Py&>v!zxOejUXgF-Nh?R()MWk_DUD?6w5+CdzK1c_Jp2j7+P z7pl$4%?GNj^-OXTMzn(i=Nb*p62~`LMuwCReR$fSQAUO^_Aaf!w0SM1-JT9lCR6(v zA}sT|UZBHWJCOAxl^!fh;GutcZi-+dd5Q_5Ymw8WRBxu1%cY%U`dIa~U9n?}qxcmA&;2GkmiNVEgnt0AIZMvx82VYM8thMZRke$BvC_ zWlVqr=t!ITeF&Lru^cx}@(D&w8tezhpxgJS30|!7-$D78+3syNJ&v81>)z0lhPxp- z-Ll!Pgmdpl$F0FN9JA(h&lc~=d6-YfyMYX{q^_R}>JQXG?ml)?tylb+g+gPw&*AD^ zAMg&Aw%avZg8wXf287PAPRy}*G-C4MI2dmtJH?wk75~oYl%hwd6p-cJ3jEq*JxyBV z?m)WN4&?yp5^7Ra1_c#@v$82{1sV1NyMfERtUP~f7j1$+dJRn}cwp$r2WInpOcD>m(^*5&;Q zholVp9U?scRXFheuMMed;QV5ElWHT15Gt9eJp89od;2%Rx8BppAl$4om%Q`)-oiiP z9PCZSl7o zF87Z-L)>+Ozv70}dBOl5bkhKK4maKzllK-MaHIEvT|w84vB$KEM*r^h&7ZOn{J=ds&wn9D(xa>@Wu=Y-zi3av9EA4Ir()jo%x^gIsMlX(zzGp#Wyo_KG2X!q8HIjU}%&F>U%Eh?0R#`*eDTu~d%J@&_>! zL`@V$cBR?Uy9u|R7)c)N%I?hI`NTGYVq*t-n(cb~e}z{?!_@!TOpbDe@9PNjvslbu z_sZmvqepPRVv3wGba4fhb*GY@-gxo-96%4aWAlP{+Shg^70 z>-|IDk~`Lby|ZRK@G9Z|YX%Ui%o2M_qM(hvcuiEjgWn#1N2&J|q4a2Mx%S6-aJRh< z%H;&vL)$hb-nK+kh?tGP1wjh(X@0a+jT{u--Zzt3{EFax@tC6@2@f{IZRIv&4|fqI zc`LRpVIS~aqGfB8yDde%IE_$;@4X7rD{^wZ@0qYHy3NF_TKqF#nQW#tWWiysRS}$f zI0KC8#zBGwJOAes)s0$f6TDkeD>CQY9#AcI+x2VkU9{|B;{d^-6wO`K(SO#ihH`^39EIVLldbQsimz@v4s7*VEH@Fqvk^3|KSlo1^bZYkg zLkna|iu41(`{JU>KXy+O=r`q|n-TSKXV-v>)Tk9eSCpHnl;>A`XQt%<#>)*89c+L} z^dh75XplzPkmg5?oNM{E>t?QR>AF8Ifx@#5((MN!4b}XWZ;?u3gTylz@fPP#`Yglr zE8A(>0Obk2=b;lKBqud*;hr(-p%V(3r>37|8k>Ibo^0Z-6SUNGD_}6^Ie+w?iA$0Z z3GfQd4h9=imDL@tg&x7RI69lR71;Jc>Mb?D08so!#>TGj5eJ*qJE|#T$gQdLQ;EQ1 zp}@TBA9lcg>KMSB#7Eu+@lHDmb)Nxq_l5Py+2*f1ZYd-4jlFvYXP>%9eBtqP9g#`q zfmKNm=LGj#l%3TpSg@AhbEbP7N4dqciuh`T=jA++W7^D#6>$H8#+xRWH>UT}fOKA} z!f}!9uC`pooa8S-CBmkoK_7W6;M;d@gU=_t4(cZ1b$OwNg)Lpt)L{7=CgldGd=M5X z&nZ(Jrfk}B{DWJTgdO$^|9!`<39S5HC{E1>qO;ZH(~HTfATh1TSXpb(Zz*HpF4(aF{>udd>fj&zm(Gk2e3WbZ>bC$} z#}HK590gp@Fx0Z2mD9LW`8s)%MLYj2qO4o$Lm#5ZnYPRgnuQ^YnB%L4`^?P?<|Y+Ui`Ll=oad}d z_4iRs#rpq#liK5(e{_6!m8IFQ_jOPE`3JhfRUgOBtSJn=hCucXk)uKzqTel7C6ao- z<+}*_%bi65=PqD^@@kl&JUkF9m$Z8q`2Q2*Rp{CBPp(wN3-S2L1q$Pa8W-rkSBa#0 zVbUJ=oA3+FIOMaZ^b6{S^swfxJhUS`@OIS=R2*)LPxYNtpzR!2K1gEj@$z+MNT=iH z@=#v%4c$U2hEa=Nn}&f~WPeSyvR*F5FVes(#FZ`t3B?vj^LOi>wGh+0n<;)%#>G`x z)r(V>AY*)esD`o8ePgD}j5@yeyxi`N+F6 zGaLbUS9hq|Vbbv~$(&wjO3zV*&p=XjzN;xG{b6@wY&zkD>p0Yg03D^ELL&6 z41}&@9;Iq?6ZkE)Z+A{?kY+_vLF$IxD_Sj1TPE8EZP%OE9Q)T{CDUbE^7D9=oIAot^h3?< z{v^@jef5ZzowkCdLk^J=L`n4;X@lwRJ5n%L_Z<3?%1)}#PqpG59)P9UZa|P@v-JY+ zo2nac082&v;ZJm+u4J(da@}`jAATXqvfB8y9))XPSBISXoo)Zm0iD}o17sTOxsQ6t z=O*+P=wrbhftMaHa2u;*2YyIxM{a0&M-SpyY2Sh4lP!-VWpC*l{ch(*E~$Oe@2}J` zEXI&u2vQozbf3fri1(c!*T$6JB;SBZ3l3i5oRn1jC^N1m|F=pVE8o?ZZ@*vUO-aAi zhuZ~c(jDjx^Y=gPgUB7qFYvaJ)E?e1F^{38-*R_+yT~Rhegof?1GbrWT|=+A#;9TW zooUe*VOUUDN3Rt{I5BJER3|2L(X~rD_$Otj_fenb;JJbhersrt+}bY>0Z@<+t;}LQ zp6Gq0z+dQGORA*>f{l}-y|8?nP`h*QjKiT($Bfo?{=PhF0agl;?A^K1CHbuY^YIVK z3{o~-en<~Q(gV_@I5iw-7QFzJllo7cP#UOLKE@%??qu23XGR~&-fxRzCRfVX(z&)- z6QhHvm{^>yE{cikKJk5?H1p1Dg7tKGBT`26JHPc;j7iG^ zF$Cv30UDBhj*F4L!)*@z*jj^F`C82HSRMcq>V-miArWSMt+Y61#Nemjj{MhOp;vUc z!)-X_7!*oqm4Gn631rOWn5_CHFYsWC9?bBCSMtBg^k0-BUQpbvT>6+L4A5x<@v)#o zg%0oQ8LN^Ssn-Gbx%$JX4f_tW+`mj2GR5Jg!Q|5S=bIsSSOv|oSwWUZa2#alp#-Ie zZ6-)mM?Y*qbivQJe|tRMfEY4Szq?*Ek0{`nK~ zKCt(n(03%C;~X~0woMhAMp{-<#F|DXpO zB6z}Zf4~y?KhyvJzvw~R|9~Y#4UB%m-97$azC^Opr6sZe%Flg2o24cRttQPT-(uF) zrOHp@@M44lL_(E(qy;@$RwGUmE-h2?-Zy2arNF@dKsVgx{3S?`&|QzN(!HiOIJ}OJ zYwY-dtO-Z@duh2gTp7Z+;3Vl7)tw;Q&hC{d|GTO!7Sb>PZ{0j$d0nvGkEDZZUoq0Q~|F6g6>4ez9$@ZE6O@mlFA z0f#^4X=Oh)zh)2Uj-!;l+ zn%*l3=m;}r-}+_Kt#4_kQ!V$&wA(r@gn1N2h@4aMGhs@nGRs_ZLp5p^oe(O56z$k$ z`M+lVR5zvKeq&C|;~&XGnCt%^aA#Ngn(}u9NRE6WHI-ilrmI88hx& z1-sc6C{{%dCS`~-*30!@Y6oPag`mb^pvJX~Bkd7ZL9d*u;3u%0-y#v(W3Ke>z99d7 z?+8DJ1?>FL0+fGz#`C}3JO9IHV%Bzs2G;+@43My~xBjo~l&z#Cx4@6`RidR?HYmcs z1Wk2D)Dbrm0v_G_QjaK9uZsjTG`z}4CuGW1gd6o1=DkQBPDUnL_?K_Yy=0w&l)=I~ z&FS2&i-X5(YFZDU4@6yv%RklwUk#W&tz{2@y6jE!(t5QI7UU*JHn(9`*0jb2W2<%z z73wKRws*T*`)AIqvxb6kbDlwsi#vJgPhjco z3Z&r1<*73Q?4wpWO6=1sbFsMxSCh8WxP(SHmi^L}Uz#9N28)S64V}zb8w5qBiqay;do23UN!tQ;o27 z=IFkn~;eCHyZqw4K>6`lxxv#giHK5iTKB;f#1ZEneVv{?MSfqEzs1 z{RCrn;2oN&_!7`Q>G%!eMj=nvLvS*_UJr-hHLh0bVf)s3VHhS*xB z4-RIb?xpj=$%WKMm`#YCB2bdoDo2FNLV?P8$&uRahu~p6Y%4y&Ck2Yi5CUoqEoBM9^JBaSf zP2LCh!JzoVNPQTO`#_{v-F%RaE%(uo?H^J7SZuF<%FWY3pSsrkHQ=#cH^JE8on=Fb zx;O($wm1o&a9%f!6z)So#CYC9&ED$5-5L>Q4hzwCkbTF-hxhdtplrG{gU+2Ke1FCt zT1?)!?(TIkedTU^^q4>Rb9^cIYFcjr6EmUslrJfw(X6y<1>}jIS^XvI(y?r!O~Qh5 z6z&osj(QrW8CR|Ct-g}~@P zrReBx(0k&dIrJwIHU4LrPzz{f3NZFHQt;+NU@Ce^a+E0R!W}pPDX!+&&Q^c>UIZ59 z2c*_hPBa-&OLNKKOnX1b>e?w5s&??TTkLc+9h7J)l>}L4FX$2i70Ba>{)&hWU#K|n z=6V;WCvv+D z>=CTy`+KFwU8*$|xg|hCMoIhKev2%qJBMC=`ii@@iCCrA(b>i^$2vQdDW3&56Kn92 zu*QutUEx`dLjr(2#tE0DwdJf%0AoJjkV_WMx)xS}bi0RCJq(e!YA;v8MucJ#`yC1&8J2~tdYRMK?P zkW9pKbm#7RC3LJ|(nFCCKNY3q@L0K<*vr*KuaGK#%CaCKPkb7?(GX3D3g~iqAhof= zGt4^~jyqa#f$HE>Ge)_)xE@k`A?t_wD(CE3f4cd@t~GOFW82rG0Yl1*Js8#xkNQt$ zfxBC;VB2pGtU=GS>47)~>{ewn$yFInx6?XmX z2g2Y*Ye!=gLTignj;HQOR>Xfvj{+inq!6pdvY%ICIG?w#C>IJqoVvP)_au|;8 z_tce4ET$ohfK^kp6T92xb=!}jua9(Bu%viT}##drUKN{3xmF{8uG{JeR z4?^0bSWF4N#A?LLxzFRu*Z~;7vYJddxQ*ltLs6Rc+3k{dWY2_Y!p$)3*^423pH@ge z!(XFz1_giYuXl9tQ=n46qq->;vekb8rZuf|VcnzC8s;~<)b7(^R)=QsFm`?0J}ber zyc?mW_^kW*P>E1$f(A=}*)nZAb4%0=CK28p8ULkw%UE2#Wpv@i$uzDaTh1nRIcE2b ztdV&I%6Qp!O+4o&1LTvzdsY+Jr6zl-qiVz@0&|(;B7Uujy^4zClZ7yW#kJ+-M(Idt z>!F)W0pzUW=HhIBp~~XhexV|G z+=`@ko~SYO@2i)=95H@_H2C?tDs*=69-z*BHd4W;_!~G#zCxhCJ8F&lTUewY81) zlIPLX;)?`;*f-vFp-<_Q3_yLsu{=li{zVBj;8S%xkQ&!dZgYa<4RxaNF`8iWzh@}R zj{BZP#HDk3s?c5yT>Ml+dp@Y_1XpsPTT-WXA&Osx3@D`F0YWEihgYzSjN-;g#&Nt7 zbvKP?O{DqXOEZ-i(rQ-G{u~ZIR35jFfI7YD zCb86ddHjQdzfiJW()N$pop|YLohO^MwH<-FRNFm9reH=In`+j2lGJ%!_V!&mW(A&`l zizam)3W_>Q|6py8UDsQM1a0?w1M*{J^5stVahQuUj%;Ix!0tN^GS z!my0qDB_-i4v9V9Na&b->VkAtq5CBvOaS1s_WX??BNb|c^OM@V`xb#DldhmhCLEspOiud zMn#RWC_#qZtY0mbJqS$@#EXVmMH$v8fGK$ju>Lh;L^0s%3m||NNbe`cdZa_x?sR^E zrqvl{vTmk>6DB97q%X$4;Q(#)BihAY58lE7z@nv>vUwqiIKY?;56&slBWeJ_Kz7i5 zSEd#nxmgn#*+kHpj~Y2=DMI3%;ZC4eu#nSI$2gc2bTOc6MVo@^^yUB~(tVD7u1RW~L9vC^5NezYPw-n4R~&eFfQ>-Ireu;%+`}`t zC`Gpd#mx|`DH(-zX>O;o?yQAZqUyaV+r9S$54tupFr%uFx-9AW} z!_HWYYx1GXfz}`le1f6(@Z0?FUq&3=TGh?;x@Lz*>10gLJ*({>m|LbR5u*G%iEB*H zMC_L%uI{SRT#TPHbW~KucLX6pWlY!2W5sx+`ECVCz18xu`I47}`OgV6@7BUO>AyG< z8~=@Q=P&zWm^a8mtRV-x`p@K$GzJB`hR?tuugwpKsEYFY=!ivG4UB)mG#;4&%VwbG zMfc_rXy9=(P6{$+aH!weH+lT2H!(reeB_Sr^k;k|lKYb4e*LrV7|WOFRXx1`?6sG% zndp?Hi%IXW8TYHJ$5Nz|%$_JGd!C|v8RFC>sf^7!qcf!h@vhhAoPI7E-C#v9VKH@z z%FZCo)62i4BCGh*RBD;K8l|)YIO;HK!}z0%mZn--UE3PkmO-bEa=v_`mc9+RXmyms zGlFbQzLk-JRjIuU==2mseA|+UGPTA>YM7=-3)}3E?C7oV?5I6Tw&DEV#B4pJmg6TP z%){P-Hi?YKhXLL_BYbmx@7SZ*xoz1-Gp%csh+8ttc;V(_01 zs=SG<@&90qCoAg6{iowNA4|Is0!*uUTZqPNfo{@Yfq|qrV2;I{=fg5@QV+L!#oEy@ z@KV7%oA$C(F@$f@$+VdSw)7j%)%EJ<4`rpyX z@siQnrMh<;mp;jJ7P4;XjS(g6)SP0k#Tx@7dxW?q3r8u7RO&298UycJ&N$^O8bZ$a zM9GasuWS`PRJ1hHtkB_Cnuf37$+>h@4n&iig?&Z#c!DRe3m?1=Pt4p3GPvTp?a|BH zoH47VyZJttH8!-mv3)f!MrhN$Z;YZR{@-JK9)_H#vXxV~nUY89d0DhNFlbcz2?gaI zZXXiMt0F1CXn?_AgmGuCJnw)nm1C~7hF92-KVTh#$3%6%X#Z^v%!_6hWFj+Tse?|) zG|YR>k5@&_voKI{=qbE#7dJ@HF)%;EONgpvaFXY zH#HjyVM%V8ux`BB)J7kSjJ`Nzb)3$-`u?96qHd!G%K4IHEpb_nwr;^G_|I6&!#PH1n$45I+*g>lnZv?}V05h!w6>Mv3r3mA!Y^}6tVb~h-O30~m4%7|fm;0QWH$nG9pi<&PGY3gG#k*&yl4}2sPWV9~^P8V?g)^q&h?H zi)D}}_i=dCHS{$4_%>ixJ^rujYPIlfAe9RFc%$v9D1?w&rA{)JnMRU_k`@@k#K0%P z&VLlYa8G!UN^!nQbr6emXDz@r)l#!mO*iiDsOJ0O3+MBcBG0r<@KLASxLYz;nTvi~ zCb6JLNvoizbexFaL*RJ`V&>#iv1MdUf{J()*+BlNsZ_7FHI%e&1<0d zNY{VGNo6mO`*LO*F#7dgufwZ_DDqzmYYcuH5c-Q{ubH~5&^ulDjjYqYXg%1eof>ZA zzvrkg!RME`J^M-iIqrl1Icd<{Dv{gt{g@SNY9{enTCu#{8u0V0{L^as_~3_LoO(ii zdA7{z%*(N*e-7Impx|vH^Vpfu7J0mwG+j-Tt2G*~!Vr2s6>~p#N#z~kpZ|%j|gUP6q6`X)nP1FY;q9YGG9+E10|MgG@II>OsqIkQJGe~ zOo(S`D(rG_u<|)}>`_{(RNrW0?ktjWdBaEtzIKmK{?B&IW~{z~8tYJ;M0MPn95?z`{7IG=^|4iT-U&znmm>qPNv;ZL@I@ zYK@Gq9zvzoWs$LoRBK$SQ9ynr91WrFj~+)C!`|c9n4Mc#Y*jYM>224qR9IXpreKh) zv$?XgR0>Q4BSo1A|1%(oIZGE8(!O?X))bbJMMsmz%e#Sg#hDvFGTDJqNLC0R$-}g< z#O!5aC8Q)K<0AyE*~zqyeXd1UeGNg)y++ZI6531QW9lX5WMK8)ZZ9R}vs?eB@|Ycs zyNjw5lFV{>xKD2(^4dw6tTGRivSWlnf?}hl#-P0vp%*hN0=cVgdg(QU;lz~c zpOvj>usTd2MTN6IpsOqcI0i>M--V#g6#9%NOp)26RGewahe~1*sM{X)0YX$fn3APK zsvdQupsD*NYc-Udl)!&83Bl4v5=*ONbR+nV)#YPpfe($LXi_lJ!lRZ0i^gU%*fC73 z$ZxMMtS|)hJ$|@&C2gQY%*MP)ff)Khdg- z@5|19%+r~h+uA}**I=&F2+)`+2}Xsg$yi@#s|Ot;r{%^*)hbc8usj8J>VnZcfvq)1 z9)R~2Ns36`O^IWQ2usnYpee7iy_N^Fw~SiCDrml@3GlC?y##0jtXD7{TAh7RUQDYDGVGVu6?ZcjA*n{)P%hfvP~GXZhGC*USD@1e90(D@0Wn`b#BBU6`kT zpOo{Mt&^Avte`-;(Fi;=+ef>rdMG&_xiAMH+X9M=us4ssTeoKt*UHu@VWzYX0DMoVR4sgzv^>bGl) zVD`|;Nad;DD`Ie(LJsJ37V&P(1!wC|Xl>LsOMyZ;ZS55sH1S3u?cVO9vf$&AphtNt576X$8Wcmv7v8;%)b!6!5 zm*~xo+rH6$PRZ2FjYoOw9qVHBb%BC&6!NP`K|gs&d5GPQsfu%%$QaE>gjY(K%_?TY zJ?7IiQIFMcRA$;J4mQ~~r`srebYGe-*PZXeHk_MvtinPuSFEK_=pf)##hdA?8rNcP zT2pt7>a$hcwzRIYHg8VanzXd7UIJDouH-k|T2EsiLNgz0b=lTOUE5Y|n};W_jJ-Ck zb1m25lXQ#p+E;(M&P-k@8eOZB_y8{PTt_CaOrG1ya|c_~GY8ulyrMFFg{NCjhbdOn zRnJTvXtpNd8s0Z2`jIvsXn2lIS?@bme};dJ!M5$?cPMy_s?S1AWTJKS%mLPVr#PHB zaUctg)7D`Eg=S(VTQI0xXsQ&)v*&7+=9WP%F&}{3=y%JXi=tO^jullc=>%)Km* z-K=}-dThIcma(pel*ECC$L)RDv!ubi4rZbgffWJn^7fS0G8>lWmg=%=e-O&g>AoqBBvn>t!ezy_ zjEHt>L@ORzh1?1Ye0woSC8OluQ`D$8nQIw~SZC2v=UihQNllsdz{2{pEtd6nV2i9w zl4Wyv%!AHNY6L4OZq5reD$yRYvdFgQ)@LV*9@2|!Y3cRm;Ex37Ql-Xc#n~f0Zsk!K zt{~e?5Z%ZxTLLe=@kNav<%k3-y0Q4OMDkxS@`RQp z^)Da8;XDU0KDs*JSwk>y9FlIq{4nl?L2ct>>HMPq$mP(7?W1M@9$R<*-IIznoHE~zsqV3Ojdi(qt zbm!im=gy%fFCvxi?(0ZTKVk^*+6!oJPnTx$KSc~Kwcsa-8?YUkGe()^(FjwT4sU}2 zBgz23AgVtxj3|9g;!l-FT2%B$Q>4;?D(!}eX-so0ixHIvi7pVu5+cNslQL&ynOD}7 zWa_biqXjQTvp4TAbCs_FT0A^C%~L&dl#WMLNcFu;Bg#ISv&%Z%&vOTj)7(=7p9lio zf01HVi;}yID1%kx&SBYC>}0eIM2Rhzr~UZ|8Gx{g&!U(D-SfTqNr3vUJo%`!R zLTiT%YQjTX4~YK5TGIph+mZiDHdbm??%zCP{>BL(jCMM)3 zY$%4!GMrTwN|*d3{CGxix?-U2Ynegru}RDFT3!!lbNiP z-44QdoyQzp*DnWO8pB@jA`pQVBN;JHvOE=zQO@7!vJ^Y)eOlU2z;*FB!- zvY3*$e!Yei)wHR*{Fe8Z%G77Zrh})8+A2sDzRi06d@DR=Wi4-32;FO9c#_cqdzg~7 zY(2C}4^wzn2=kW(5DSk+GoEI{E&C5ItEvV%!v|&GIiHju#Dh0m^9Iu2kmBBodWh=+C^Jb4O-Z4PHQUgD{^Z{{ffUEoP=JFf>U)A4Rbv* z8Xc1hO|eX-gy_cV0gfQ?j{dsCpXR|&{91qyz0o)JE0C4V*)Q=6iUKXkFDNOd!rZ8r z59Fv_LyCi6HNtE~V2oX0YYjO`{T<`A^NHcE6sNGrDCq+OG-rZCmXfE)ODPse@;pB{ ztCj01?o{TQcrw%BHwJ4So6@g1@vLpJ5^g@TM`wAnWXsVt86%i(2c3Gb`hy3&`i~*W zs0VDyVGHr}i^3RVnYPNq7Vg68l?45V8u+0VhLtVfaWNsbktU-J9~686Z{~|L23vcE z&#Ppk4LLWZiP7WFtNkP$G_&E0{1+gAQIZncvY0NHDf%EFwAv_13k^LyNYTTDaTrkq zeuP*dWW3TJHBNp_$v*1txUjp8nM`aHo{RP2|(oFhhDq&th3F(uk_>Ve}BL`rp4B}@eNgfp}Rhot_*$)&^aJ^9izzJ zO!pi*T_pLwfg3$QCO%-!$4d_|K|eF_N$FeA#KW5Kro?J#5K0*qsxwlXP*x_G)N;@y z>I~GckXl1@M8O&nvS!hmtX@#b+Zi9%(^dkhjR`hKqV9TP46xYI(7BjguwxJV_6#-P zH$Yy9xbk|1$QWPOIzIiX(Em17;xL={fT`HixB%u2oIDt`M#CR8y=P<%)9ax-a8ifu z4%QhsUmf&@>TxMyQ6CkuQ5%%bE%B6GkpBuTq-j}uILGHWH6lI(?<^gk?&!} zCqlvje&7qowpF*Hyl}=hl=wqi;74RT&|`Qk=H(~bR{JrGGVJSr@(f9n-pAnsy|f`w z&J8wv**%*%)PNxI9n|csZpUQp9YOO%M3g#~q+M%_e({Mm*yGA%@EA*pmSW>Xq=rM& z{JWwyk-JunN47mX2}tXY<6aRuT5jy4M+}m|y+l;uGPqT&KCrg+3O73SGsEjD-5dEl z5NTci1KIz@*E>dM7Pae|u~D&6v2EM7^~ScHif!ArS+Q-iV%weFefHSr^yvP^m_OF< zwdR@+=5t^70x)SK7j6DtT5?d7gtb=i(x@55gC>TE2w2DL%9-9lrScpKWfSF zFK7c1O|m&v&BETOoAxe4aR)3pL zVP049a4L`_Gc8SsCmGtYBx5K0MGeQwU*>1oF6Sb)pu}OMZcDN$(P*|_VrJJmRsmQP zaj(w5b$ftFX3CU+oKQM(DjxoVUjJt22K#X|?Xf3-4=_7yc&8-rWlX@!N7liFm^=Xw zP9^1Xj1dasJEG7#!BiQuVD=M{yIz>B0%Lox;X(;1Gopaw8mmnBD)J{YmTd_dsp6MA zTCk@nkX_`EMLX|C^RjRkfMjb=?UF0x!Y>%1N_w1;9}VZvs+Lo(8lIzZt^I)cpx#<4&E~%bmVeX^mc5(X67GvoS3uMo5_vNMo?Zr;ewyP_Zs4Y z^@cJW)e>dkF%=_YDIEC01qTT|h^D#DY^d=<%sC7;2qbODI~cOM{A^3WQn?XeJJ#DW0%}&|KudNK70`ix7YyMvG@E0_*%yg67wT!d^n( z##`#4YoV)OUR{FHU=9K)5xWxFS7f>n#k7X5rJb=M9G7uoT*IR10Krg=4Mz#amcE#^ zF@ib(j{~H8E^k5THHIK{=L2q8yuk?Ame#C^*V8P~2w@vAdTPJrFqa8LtoRm*;>b_5 z_-nKz=J3vvRqU#R2;X?H2+s^`erNBzrgrNX6_tp&W>equwbGCn+ByJCZIH2U;EkBf z#TKisOp|LmB3^QmpN}MVYmkI@#BB2`bLG;>i-MjTpW5XIEzNYXx@A0OAV@&EUI(N` zzaj3F!tL13W;THLk1gdN$w94SCiaMpql%^awB-cTM1z2j;(gP_A?{(~je~ss-IXn3 zBX7eMLx%cKzvqSTUn8vNT5tvan(*_Bd5;pASV+W1qEm*nQne2mWHh96~^Epyf8rCGun86kp3{AvcQY`HDHr0>+x7nxV@xs!#35WasBBMKXQm zPoV3s!#aZid2`U>AiT2xz6`{_6P3yKo@U|xeNw;m7ZZ)fl?iVe)6M^l_#HKe)NPK2 z+mu~4mWH?sTM^7EoyYq%Ci_ryISom)m(JbCBR`pQH&-#zV0Hz^MAFrj*xTd^(i3$_HV&=bN(9zrx61Azran$F5htCA{(&o7A%=R!&oNi3Spl6^6_IGSSFimd~A#NCk46_@Ath4y)29tdZFq9ed9K4 zRG~bUX8{BW?sd7%pyrt-2P;jL6s%FWqKZtQyRQb7(cQ2G;jsV}ZaJi)r+A#Y)4u6R z&6aLRn=%#c6sUicpH4)_>dUA16W0P~fd^M?m{%N3X&9qiVyP);5eD&4=o>@BzT+*C zJpVEb;&pK;yp8zjFhm1{I$wAmp;{O<7Ionozn5DKHF5bw&kAa{QSABejK$_s#YVQ1C9wsp_7SZTQNc>Ty9DB~#U_T$Cxh zsUzaVu@ISV;ybSSo=z5TdH55(r+Fv>AK1S1d$s@B)|77!!6x4lEW144sgexu-x za|oe1fWc1dmcb~c+c%R*#a?24t?WR+1qNMf zXo=Acv3|ufp19smd1BwJ`Vs_w0&X~rjr;85Mp&H{wp#Jrp`e?#+?CzqUAYuYo*cX7QoJ2Etw`#FvnK1LDd@ zKZw^l+PB@gKEdHY7nluC0*<-zk_2%=!aXae0(Ry<0@%QP&sE>Uy zdZMfakbCg1xP!8LgpJ&oUL8n#Fd^Q<^+e?kq~2Tma?Tv!bw$)16Yku@bnY^#$JP+X?G}p zQ~kl|i}DTLo8CKUx7Q2#MOVgm)OtVjf+uu?Z+N4(x6d6MdW{@DipKl`%$PucO8P;^ zn6g7Vee7cd(3q4pK0@i#Ui`2(pwgrBNre+NnX z)oqCO<4;>OKb`B{b-3^cw8I~MO8g`KU-CBu;kmbFgVY}*`|=-}w-{epFWleZFLB>0 zABo>O5BC^FhxFqdU()G)`U${a)SOAZRIsmhCeYv6aCbWsw;!yWLEnOUqxz|lFS$od zUnM$2I|(?i8;-Dk;(9YX$?Uh!hiqT$?U~=YSH}dS@2{bEhF|ipm@hm-^5bT&l&?-- z>E7{vbo&23?^N^0-2VLD!6^A?tuyYmx4<&Tz6&E=~Onh3KfZYiW^x6*Uo`zGAG6elXxNH;2#i-!<>b_;flo%|4BV)K zPflimdeGS?A}xOg8RLZ2sDw{{a*iGa<4o45rbkDopcb|HjjUdvSCD40HB!{Gwrt@V z_3=$`E{^~?`fY%yDEF7_TVjFcceqByw-(LH56JqVb@1p-UnKM^UZdKNX!(SENNa$8 z83(xjuLKHCw2VV{JgqIm-C(p>_^M@6L}rwuL!%=62T}dh$*+y*=6yCmP}^3U*ruVk z_6372IKCbXB4PWt3&N7fQRIYB_{H7_<0cc0Lx+arMzw8CAn?HT@{zPLT-Rw?&Xk=>t{%b%mKk)U%`%1CJx~gC#^(LAyOJ6yA|iFA*J!?^~+2U~OAF>fAaaT@c>Mos41l-?74G@Ujv_sjDOCS(_G zLq;Pdjf4b9*S9A>a$JWE{cEJTGsU#K09JnE)g z@;FdZjCgb^E6}YMfgaU+yA(neZQDC9n@&Zo+jSs9toPYg}-n1CA>& z(SWgIw!T@YLwYW~GF8#-w+vmwpFxGk})QS;(?X1ao-AyoXK9H?RE ztyID|9AI%kB_ns)0h$&MN7a09N$ezdcgs_6&v7Fj9`~r_BxT>9Cy^WJ^l5q~w(Vgo z9+cq5cqU_Sf`~rCa{PJ4^$jPW>l|!+Z&P=YOrz0F2bQmGGz-ej-NwhSWnVG6s6ibL zBewH{FI}PKl+A>y8^p z28Q7klWYr+t7F}0OAKsj3EiK=$668}2=364(1zV>NupmAnY!-;#KC^q__Nj^A3x5n z@*IOZ(zgT2T;*?eG0#Nz@EkXo9>eP_8}(TfVSAZ!#?DEsR^v^yCnz0KNhMmDH|a

@RC*sFb_A8kEYd4&0rUl+0;8hXnA=qg4bPxbGheCP;_ z=sc20M*)-cv5on6VAOH3jf7{ncV1OWd_&8l1dY*moFhkS3UHslI_(4Riw!wQIlZ_; zO6HF*ykB}HRh<)LoqJOHPqXY$iU`RQ7$7rH!zoWx9mHnM*%FhvcMMrwi&2!Fu}4Z8 zV2-(~#>jHNp2s>5=%seM??Y^(nj7CTwF5YT37TfLN-*jAqwwzN0n zvs4QNw;-sPUkI7Jnxj#r#xCbY+|F^S*b?Z5Q!R_1D-OMy6IZws=mw1+6xyml^L3yn zuZU|akiMO8sqhhO`Hv6h2pv7oEw_tXw3H7zi3#>);sLjEf^45bxpSLWOpWL^3#qI~ zeXw+QsI633!B@Xguu`fUn)L|JI_hvL@`$NJKNgSwP`!1g~gTYhE?X8&E!F}75PT*5arpJAwr!Ov-!v1W1^DgHL?S9~Y zaHGe|ucdMPj=_JN2YL$?Y)W73^Q$;p(R&N|TFJLlJt{N4V`{Wty_qK@bp*;3u$F8g z<%W@pGKqb2CoPqHl9Wq*KpDeIU`E@h^)#VOqHT{o>`4Gkc$d7QeOY$Q>a$f5O! zIc!guNztM7$oa7loQdxea7;e59D~KvBk`zDojJm$AMyyln>IYkF4p6VP5ry#&4<0q zsFKR9b8a6-3D7&*%s5&&o+{JibGmBMl+pQ{q=#;0A^k@SIZ|luiJ?F+Drf0FMSV)U zEw5_xvb-&@Twc^f)McoteS(_GEJk8Z*<2VjB-T#7`HQPBDxc(=%o6* zZ(deh-bMuso0-5nv3_uCFKwg;0BCdUX+eIQvWD(gnzpnqk`vXZRESW-pf~0TvA$v_ zUYxm9$7L;}YvI|RU}vv6>3B$kZmzpmp>n5OPzl4sFV(B=q0?f~)gyOU78ZMN>ySa_ zF)hN;1_WMb)P`W%gts|r(mUN7)YX`G5pJUDMcy1f6IHnFx$yiY}@!;UYG`ECkD~)3@kHv&&XCPB=micRa&@ zti|qFMqH@U`%rc$aB2NT{du8qUZhuSN@i5e9IHvwrNmj!h!k^PmoaCbc~|NB2gjSk zBzhgiUP{~X)>HeSe%YP}3A)g3`#C)@V0{fJJ_UlthGN!04NA`8Y)>BJcaP1bB1`TA z-udG{HEv@QFYN*=42J+S05!9k#q^gmp z%%_)ARcCR-oOtA-wcEkNd39$eyVqfAO&|L6vd36>NpX?!pY>^rSknG-6RP#InB=YI z`AARQU*AGaSeked{oS;>+N66BJC#Gz&gz<`Zo^bc1>VkRx|fC0rz3oC@Sn@#sdHom zmj&lO&eWH;b3qSQC5Bs4)CF_)$`o9*+l$*#qbar3h^-aBUd;(y`c`&W>5*-qMt+B# zFP3hPz&9=I)y3kpkL{uHfms#D>M39o1c>PkDTZeHtnM;4!^I>*dSOY2;r8^6I1Kk+ ztaOTdXYINcJFwyga2)3gd`&1>(ObvR!p0Vo6w?v zyNMfGk**(5HP<4vLx^mp<9I0RSc#n%C}0TcqMq*?>srqay>?)h!%*AZ8SAE`RLqN= zf)HQJJaa3?ZsvtXIeXx2UcX+s6>+YH?j)-A zhNIk4QYqzvT;zn<>v}1pw4|k47(8of&&E)&gev0ziM6FW8|4g~dw1zw7FU)Hj9}bB zgwo&LiftbrOnrb7*zHB8hxlGc@24&C*V>x2;R8<(2`)(^*t28Jn;P03KlYx~I$AOz zJ}R&gFJEo@e!$a}#Y{yT#(7Ow9AJoF_MvF-lP4&oAKn3!Wm*Y9f7+n~(H)Mf8xyaWh*;XPpmrU2kf2UlY>BNww3b|BSC8vQmitmx7%KSnC)DCqPB;{;d%dDAhc`-mNZ&vk$G@BOD zGD|~C2A}dXb^Nr_e!N^4KkVenE95H1XDb@auj{p#HkY-c5dQ9V;A40AqzHBkZ5CzZS%QOfBLCGps<EmHY6 ztEWynXG19pFDdFlu7=7IJGUIWh={^yZWY|Z(bPQmOX^`ZEp`59y*QmoSn^Pp&tW_q zSN@8=BC-4Nm+oi|d*uQ%_dzW0Nm3#B477DC-k!@`R3uO6KvH5CJo|SY?@7LuoV5O< z!Z7xoBU@RMdlc?TpiQ zp8d$r!DCNw@^3&#yp&$!w(ZBiRe!utM17d~ayxR7Z$RGo6K8I1jgHt7P5{g4FPas! z<9Dy?SXckxH=U?8Ih7p=TBy(_ zC|Ht6Ay0}7_85;R84_N4U?F=#gCF>mCLoif3I1mEDj@mDl+KgahzeFyo6K1}lx3QN zNQgk{njQUSUqm~hlF6()zj;OltUbAzgU zujSojP5153ub@$87{Xb_i#2th&k=p}55+wGa!Z$Go{L{jJ&L z!~WXxrjbcg6A6iZBjS zq}@pge*rRt@B*<#)oMQHW^m@n7oXYpgq*IYt8Tot7Tr1Oi}V0-Ld;`mqkv99kOZ3n z!Ue7Z&P9L<+>Q7~eL@{2E*FQ@*C`kWpBjIUbK(v5z+%7O`PL!9gBXZ=%N8Gyh8ZM) zaJJKzLNB0y&R4Uw;B0{(GTA6cb1!17|6?TeI`$mfd?#?-&vwEV6KLv>EimK%1(xCe zWS0-1GDk2+q5z8sT=wV5>&g3l_5_ZNxDK)o?fL5g?7|)4f$EzDGIqYo{$gW?6BcnMhR7+aj6gE6nK$YybAAwJ(m_G!G1EcxA!|i)I87!YY9dAI? z9pGGS45-u!RHrr5_-PiQp&|6LbT6_VV^h}vu5Xw?vEWH8)a9MAD&`ySWO+(u>wH=D z(O9MT)zd$bR|)#O&dC22n+*uvTmzItYCwuYfVRv^nY)UzEPAdJBiORhMPp67TO8C8qZqtvln^gPU_rEklJlP&`?o=M+iBd^qKq>zRQig!}Zzv7T!Nv|3cIU`U|FsuCC5w^uA*38ep9gLzdk&@bgIs z6bq6|&v8cS`J^Qu2#!&=U`Zd_n6;x4VDWgIX=H%oL;NG7xM2`Mz`P~Z` z4dBjvlE$FnfO-keQKja+vZLz~9k@nILaKAB__%ACz1&N_dltX_1{HRiYzU9ROy7_7E3;W>y_I z4(Wk*e=`dX_&Oosi`k1c>==lwLPPvr9e7ZGGpiHuD(Bw>;8~@6hJCNtzAzI%MnAXQ zTR2pOneQxbIfd_hAZ-Ez@4%HT7eH0ZH)4Ik*n0475(5MvbjvqFeNL>_;8k-BaBU(3 zr2f*ZS&;5IAgBZ)6BM}1-gzW%g^JcPR2(y#=|$Pk`Qbxrs83bCx`{;_v=v|v1AOK zs!U<2jHEA)1InUdEm$$;xbUSn+;MG=l}}*!qFwJ!ol)fTHr$D}1`^9qjsQHtIfqJ~ z0i_EB?UNc4%+Zw|DfK}!OtyP#!+JRY14>N98}Guz$|&--b@vDi9QynAVd}0$_s|*U z?SrG?QXMPYea{01c1-cMF^+L+nZK1Xk%gvQ?3unjeHR1J%%K}of4i1($ImAjyS90f z=~>8cAsUm|(-+(;IYV31lfA>+!&);pUPt~Vd#8KA>swsyS59ibXgSe;FLp)NGGFhV zPs#QC_0Ft?VWGmjVF ziIMjznr%DyUGb{?k22OkL@m*eG}d&2R?|C_<+Ts)%8cCRlshN2wA@y$S8(dTesy$* zsa27RUt#(!bO-9ycpn)qc)b=|lXjY|ce&NvFS_Tc9|6s={7ncqBg=q~@J9|mQ{IWt zDvTGWbF{C1&+Oi&?Sp~kQ13ymL4D2K`;}#+ui-axg63et4djq)I++c6+;@`Sm$>n! zh!}icMWaoTe|GT6-&RpX^gDIHE?$lNeQGex*~4(T$wF4GL~^?I;96V5ke=A$?eytj zE_98Oy46wF-NK39@foMDP)k>P(GMBl$x4tqdTEFQ` z*S~+EAw;glP)@sg7tH^ReQ|saftclKoWP+(W+jS7D^sL!0EU>3;T(FHCI4hGDIQOv z8kQ=ta2wX5k|Y!bF`@uQ@2 z@MCObZw$p|zYm&BgYHWm8#*LADd?Q@kh*frgq>%l4$2+N??W8hI27L3w5`30T)6U~ zcxBNK=^bAe47{p+2sN}Rdk*T(lV8RA40Sj3z9i!k;l~Y#l)^=THYo6rj6{YWVeRK- zQQ;?=>^pFZ^ZceBQg)1Y*IEuUGm+pS#~F-dqVlB&?3=WUeJIvo)Q;2cv$o52QPN}B zja3fj9?9L-bP0MBK8GP5%?yp)+1`eC$$OI#poSg}>^r^wc@g3x?Mb4K7`P*K5b62d zlVBHFdnCS(^BT@U)yp8^Yk_%ZHITG}9W%mKGy*8{Xn@Ntt&Kk&WBthaEk+>UGq-}m zB6pW%bLd_X^*6^UnrDUyP-Yg)xVc~ybyGF$qtShp^LIdz7soG@U6*Tn7r1MOT`>f0 zIP!}!kH!it_%>%pBwY;&Kj|Czke$CYli?0#T)~d7>*2?amN~EUu~uJTX6}AeEX53d z`}+)jXQeSv&w1yjkVo~wi!f4(xA*~)FtdUe`~kT;irp{UjPMgFfwbAv`+=MgvDt&i zy~3`4!nt{5IOr2bs?Y^LNDp*IockzL^1S;@-)*e)nsZFQ;q5S^+5NEu(rJr3)sq$f zS-4WseUiRlYz(M7?t`*6wo*diBlAJ+48wTA2YtdI=5HG-0sVavzPwp_0%fASS?yb? zvC{l+iT?XI%OK7(IdfZ+X#}vz=*}{~<&r`m-*2r}i^dJL7m{rB$ua1%wW@UUBR%=k zU{D&Ll0($D(DDPID9|Rg+XT3!?u~xrHYwg(TmX?rv}BTvOv&CbDz-(Iq#%GQn!RKW z48WDVC&{)!QECYwqh+Pq#7gd8zGa#JtQY$XRLacIwsEwD`NaB-Oy`Lq$ogv;dnJ?1 z^b5Z`_hZP8lca2i-*zIc`qJW5quN;pWWt@ z`Y|quAE~Au6c7;Of9f`y8oF3Ji#j^mIVzdh+c`S_ci*{KRo4wg6?KbUmMPKLTx$IR zRJ4*%5}Pn=RY-|y76Q72w#1^or;co(2v3dcG()DY?E~@)#5bVUg_3q$>+W9=|M*c) z;%Smlr`lrZrq{no&f}}@nfAoqudh!;pxpgTj`_BlT`}C>I8TS!xF(y)g8JiwUh^HLdC1~0&n5x2s48eQFl8xQ4lWxE;B=}R(_)5| zpWREAr@`cJ%H05t^tRdQoj+dn(AmjfEg@q-?Vm>;S-Sw&(K<0AxI)fwrW0FFD%}O z{1I*Zz_8?U?`dkpXX@b2brcEWx(DvF3H9sFj5; z<}+Ff;`W!9sTuLM5rgd%T+$4iz+uS~_+^#4v|*EzzkT}T*K@o&RP{9=F9WexfP?=L zB>uxzfjXFB1==*{FJ+(vQb-l|`oxe2V#>G^-ySqF!tnzC9wbq?BSG#PT0B1^P3y-{ zBg&rhA-hN+hX{|vIH6eZ$#C4GT-y23+h}pJ=nv95hEnVI%=ke;DtC(cT~xcF@W=*G67OpPJh zleFhH_HecUYU4QKJCawO{9*?F2}{m1-rdwC>BdFY*vtH_t#I` z&(SxfTbbCCQKW*>!d0K(#g6OMk((>+sY-@VK0}(Gxh@$X8Wf-jus$Z>x}V1bP-V*b zze&0G1p$Bf%X$q&DrmOT9)H&?;OC|L{cp(0|GL7$0R!X#K!JcfApfHVT*SoG!uCh_ zEo^P*-Mv+D4AAvH5G=~Xb zxrlBTQ4>nyTC91$d2Z(J`E)jC&)wDO2XU7-H6<{~q~DO&zVEI(@7uobW8YuTD^@@R zfQ>)F=VXOAWVZWi&}O&c;qngJcHX9rukH9fvlAwG)tE2yeH8(8cV&O&bLtZavfD$ib_%6b)9yJ9#T8%wxY ze?egF2y80jv?k=2(PQr@wQjO~jqg`Iu3Yerpbm4Ypp({ZXWSMU4h`R(�fMM5S`h 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 z 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±A`mHL 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� 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%0DWt8Idm#nk>>B=z5+awu2cvsqbMzJDIPQsg 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'm*x?X0uA-ZlfP?eOmi@gIpOD2zMd3oCmUg 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

NYU8MY)K5 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

`OAk0exHNG##t=3NL0yiqkkCD)R&?+9* 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 z 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 V2#<$tbYAHM>_NS?7&VLF{{TuG*gpUO literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/plugin.properties b/com.wudsn.ide.gfx/plugin.properties new file mode 100644 index 00000000..f8677508 --- /dev/null +++ b/com.wudsn.ide.gfx/plugin.properties @@ -0,0 +1,60 @@ +#Properties file for com.wudsn.ide.gfx +com.wudsn.ide.gfx.converter.GraphicsFile.name=Graphics File +com.wudsn.ide.gfx.converter.apple2.AppleIIGraphicsFile.name=Apple II Graphics File +com.wudsn.ide.gfx.converter.atari8.Atari8GraphicsFile.name=Atari 8-bit Graphics File +com.wudsn.ide.gfx.converter.c64.C64GraphicsFile.name=C64 Graphics File + +com.wudsn.ide.gfx.editor.GraphicsEditor.name=Graphics Editor +com.wudsn.ide.gfx.editor.GraphicsEditorOpenCommand.name=Open With Graphics Editor +com.wudsn.ide.gfx.editor.GraphicsCategory.name=Graphics +com.wudsn.ide.gfx.editor.ImageView.name=Image +com.wudsn.ide.gfx.editor.ImageViewShrinkToFit.name=Shrink +com.wudsn.ide.gfx.editor.ImageViewZoomToFit.name=Zoom +com.wudsn.ide.gfx.editor.ImagePaletteView.name=Image Palette + +com.wudsn.ide.gfx.model.ConverterMode.RAW=Raw +com.wudsn.ide.gfx.model.ConverterMode.CNV=Conversion + +com.wudsn.ide.gfx.model.ConverterDirection.FILES_TO_IMAGE=Files to Image +com.wudsn.ide.gfx.model.ConverterDirection.IMAGE_TO_FILES=Image to Files + +com.wudsn.ide.gfx.model.Palette.TRUE_COLOR=True Color +com.wudsn.ide.gfx.model.Palette.HIRES_1=Hires (1) +com.wudsn.ide.gfx.model.Palette.HIRES_2=Hires (2) +com.wudsn.ide.gfx.model.Palette.HIRES_MANUAL=Hires (manual) +com.wudsn.ide.gfx.model.Palette.MULTI_1=Multi (1) +com.wudsn.ide.gfx.model.Palette.MULTI_2=Multi (2) +com.wudsn.ide.gfx.model.Palette.MULTI_3=Multi (3) +com.wudsn.ide.gfx.model.Palette.MULTI_4=Multi (4) +com.wudsn.ide.gfx.model.Palette.MULTI_5=Multi (5) +com.wudsn.ide.gfx.model.Palette.MULTI_6=Multi (6) +com.wudsn.ide.gfx.model.Palette.MULTI_MANUAL=Multi (manual) +com.wudsn.ide.gfx.model.Palette.GTIA_GREY_1=GITA grey (1) +com.wudsn.ide.gfx.model.Palette.GTIA_GREY_2=GITA grey (2) +com.wudsn.ide.gfx.model.Palette.GTIA_GREY_MANUAL=GTIA grey (manual) + +com.wudsn.ide.gfx.model.PaletteType.FIXED=Fixed +com.wudsn.ide.gfx.model.PaletteType.TRUE_COLOR=True Color +com.wudsn.ide.gfx.model.PaletteType.ATARI_DEFAULT=ATARI (default) +com.wudsn.ide.gfx.model.PaletteType.ATARI_REAL=ATARI (real) +com.wudsn.ide.gfx.model.PaletteType.ATARI_XFORMER=ATARI (XFormer) +com.wudsn.ide.gfx.model.PaletteType.C64_NORMAL=C64 (normal) +com.wudsn.ide.gfx.model.PaletteType.C64_PAL=C64 (PAL) + +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_1_1=1 x 1 +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_2_1=2 x 1 +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_2_2=2 x 2 +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_4_2=4 x 2 +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_4_4=4 x 4 + +com.wudsn.ide.gfx.model.PixelType.HIRES=Hires +com.wudsn.ide.gfx.model.PixelType.MULTI=Multicolor +com.wudsn.ide.gfx.model.PixelType.GTIA_GREY=GTIA (grey) + +com.wudsn.ide.gfx.converter.generic.CharSetConverter.CHAR_SET_FILE=Char Set File +com.wudsn.ide.gfx.converter.generic.CharMapConverter.CHAR_SET_FILE=Char Set File +com.wudsn.ide.gfx.converter.generic.CharMapConverter.CHAR_MAP_FILE=Char Map File +com.wudsn.ide.gfx.converter.generic.BitMapConverter.BIT_MAP_FILE=Bit Map File +com.wudsn.ide.gfx.converter.generic.TiledBitMapConverter.VIDEO_RAM_FILE=Video RAM File +com.wudsn.ide.gfx.converter.generic.TiledBitMapConverter.COLOR_RAM_FILE=Color RAM File +com.wudsn.ide.gfx.converter.c64.SpriteHiresConverter.SPRITE_FILE=Sprite File \ No newline at end of file diff --git a/com.wudsn.ide.gfx/plugin.xml b/com.wudsn.ide.gfx/plugin.xml new file mode 100644 index 00000000..0b2bf510 --- /dev/null +++ b/com.wudsn.ide.gfx/plugin.xml @@ -0,0 +1,567 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/com.wudsn.ide.gfx/plugin_de_DE.properties b/com.wudsn.ide.gfx/plugin_de_DE.properties new file mode 100644 index 00000000..dd5d3d2d --- /dev/null +++ b/com.wudsn.ide.gfx/plugin_de_DE.properties @@ -0,0 +1,60 @@ +#Properties file for com.wudsn.ide.gfx +com.wudsn.ide.gfx.converter.GraphicsFile.name=Grafik-Datei +com.wudsn.ide.gfx.converter.apple2.AppleIIGraphicsFile.name=Apple II Grafik-Datei +com.wudsn.ide.gfx.converter.atari8.Atari8GraphicsFile.name=Atari 8-bit Grafik-Datei +com.wudsn.ide.gfx.converter.c64.C64GraphicsFile.name=C64 Grafik-Datei + +com.wudsn.ide.gfx.editor.GraphicsEditor.name=Grafik Editor +com.wudsn.ide.gfx.editor.GraphicsEditorOpenCommand.name=Öffnen mit Grafik Editor +com.wudsn.ide.gfx.editor.GraphicsCategory.name=Grafik +com.wudsn.ide.gfx.editor.ImageView.name=Bild +com.wudsn.ide.gfx.editor.ImageViewShrinkToFit.name=Verkleinern +com.wudsn.ide.gfx.editor.ImageViewZoomToFit.name=Vergrößern +com.wudsn.ide.gfx.editor.ImagePaletteView.name=Bildpalette + +com.wudsn.ide.gfx.model.ConverterMode.RAW=Rohdaten +com.wudsn.ide.gfx.model.ConverterMode.CNV=Konverterieung + +com.wudsn.ide.gfx.model.ConverterDirection.FILES_TO_IMAGE=Dateien zu Bild +com.wudsn.ide.gfx.model.ConverterDirection.IMAGE_TO_FILES=Bild zu Dateien + +com.wudsn.ide.gfx.model.Palette.TRUE_COLOR=True Color +com.wudsn.ide.gfx.model.Palette.HIRES_1=Hires (1) +com.wudsn.ide.gfx.model.Palette.HIRES_2=Hires (2) +com.wudsn.ide.gfx.model.Palette.HIRES_MANUAL=Hires (manuell) +com.wudsn.ide.gfx.model.Palette.MULTI_1=Multi (1) +com.wudsn.ide.gfx.model.Palette.MULTI_2=Multi (2) +com.wudsn.ide.gfx.model.Palette.MULTI_3=Multi (3) +com.wudsn.ide.gfx.model.Palette.MULTI_4=Multi (4) +com.wudsn.ide.gfx.model.Palette.MULTI_5=Multi (5) +com.wudsn.ide.gfx.model.Palette.MULTI_6=Multi (6) +com.wudsn.ide.gfx.model.Palette.MULTI_MANUAL=Multi (manuell) +com.wudsn.ide.gfx.model.Palette.GTIA_GREY_1=GITA grau (1) +com.wudsn.ide.gfx.model.Palette.GTIA_GREY_2=GITA grau (2) +com.wudsn.ide.gfx.model.Palette.GTIA_GREY_MANUAL=GTIA grau (manuell) + +com.wudsn.ide.gfx.model.PaletteType.FIXED=Fest +com.wudsn.ide.gfx.model.PaletteType.TRUE_COLOR=True Color +com.wudsn.ide.gfx.model.PaletteType.ATARI_DEFAULT=ATARI (standard) +com.wudsn.ide.gfx.model.PaletteType.ATARI_REAL=ATARI (real) +com.wudsn.ide.gfx.model.PaletteType.ATARI_XFORMER=ATARI (XFormer) +com.wudsn.ide.gfx.model.PaletteType.C64_NORMAL=C64 (normal) +com.wudsn.ide.gfx.model.PaletteType.C64_PAL=C64 (PAL) + +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_1_1=1 x 1 +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_2_1=2 x 1 +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_2_2=2 x 2 +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_4_2=4 x 2 +com.wudsn.ide.gfx.converter.XYFactorDefaults.FACTOR_4_4=4 x 4 + +com.wudsn.ide.gfx.model.PixelType.HIRES=Hires +com.wudsn.ide.gfx.model.PixelType.MULTI=Multicolor +com.wudsn.ide.gfx.model.PixelType.GTIA_GREY=GTIA (grau) + +com.wudsn.ide.gfx.converter.generic.CharSetConverter.CHAR_SET_FILE=Zeichensatz-Datei +com.wudsn.ide.gfx.converter.generic.CharMapConverter.CHAR_SET_FILE=Zeichensatz-Datei +com.wudsn.ide.gfx.converter.generic.CharMapConverter.CHAR_MAP_FILE=Char Map-Datei +com.wudsn.ide.gfx.converter.generic.BitMapConverter.BIT_MAP_FILE=Bit Map-Datei +com.wudsn.ide.gfx.converter.generic.TiledBitMapConverter.VIDEO_RAM_FILE=Video RAM-Datei +com.wudsn.ide.gfx.converter.generic.TiledBitMapConverter.COLOR_RAM_FILE=Color RAM-Datei +com.wudsn.ide.gfx.converter.c64.SpriteHiresConverter.SPRITE_FILE=Sprite-Datei diff --git a/com.wudsn.ide.gfx/schema/com.wudsn.ide.gfx.converters.exsd b/com.wudsn.ide.gfx/schema/com.wudsn.ide.gfx.converters.exsd new file mode 100644 index 00000000..86c5b8c1 --- /dev/null +++ b/com.wudsn.ide.gfx/schema/com.wudsn.ide.gfx.converters.exsd @@ -0,0 +1,183 @@ + + + + + + + + + [Enter description of this extension point.] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The id of the converter. Must be requal to its class name. + + + + + + + + + + The displayed name of the converter. + + + + + + + Possibly empty sequence of file extensions which are recognized by the converter. Entries must be lower case without leading dot. Multiple entries are separated with comma. + + + + + + + Size of the target image palette. Must be 0 for a direct palette or a power of 2 for an indexed palette. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Enter the first release in which this extension point appears.] + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/GraphicsPlugin.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/GraphicsPlugin.java new file mode 100644 index 00000000..8a4ccbe6 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/GraphicsPlugin.java @@ -0,0 +1,124 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx; + +import org.osgi.framework.BundleContext; + +import com.wudsn.ide.base.common.AbstractIDEPlugin; +import com.wudsn.ide.gfx.converter.ConverterConsole; +import com.wudsn.ide.gfx.converter.ConverterRegistry; +import com.wudsn.ide.gfx.converter.ConverterScript; +import com.wudsn.ide.gfx.converter.ImageConverterData; + +/** + * The activator class controls the plug-in life cycle. This plugin uses classes + * from the Mozilla Rhino in the classes {@link ConverterScript} and + * {@link ImageConverterData}. See https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/ + * Download_Rhino". + */ +public final class GraphicsPlugin extends AbstractIDEPlugin { + + /** + * The plugin id. + */ + public static final String ID = "com.wudsn.ide.gfx"; + + /** + * Creates a new instance. Must be public for dynamic instantiation. + */ + private static GraphicsPlugin plugin; + + /** + * The converter registry. + */ + private ConverterRegistry converterRegistry; + + /** + * The converter console. + */ + private ConverterConsole converterConsole; + + /** + * The constructor + */ + public GraphicsPlugin() { + converterRegistry = new ConverterRegistry(); + } + + @Override + protected String getPluginId() { + return ID; + } + + /** + * {@inheritDoc} + */ + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + converterRegistry.init(); + converterConsole = new ConverterConsole(); + } + + /** + * {@inheritDoc} + */ + @Override + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Gets the shared plugin instance + * + * @return The plug-in, not null. + */ + public static GraphicsPlugin getInstance() { + if (plugin == null) { + throw new IllegalStateException("Plugin not initialized or already stopped"); + } + return plugin; + } + + /** + * Gets the converter registry for this plugin. + * + * @return The converter registry, not null. + */ + public ConverterRegistry getConverterRegistry() { + if (converterRegistry == null) { + throw new IllegalStateException("Field 'converterRegistry' must not be null."); + } + return converterRegistry; + } + + /** + * Gets the converter console for this plugin. + * + * @return The converter console, not null. + */ + public ConverterConsole getConverterConsole() { + return converterConsole; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts.java new file mode 100644 index 00000000..868106c0 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts.java @@ -0,0 +1,110 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx; + +import org.eclipse.osgi.util.NLS; + +import com.wudsn.ide.gfx.editor.GraphicsEditor; + +/** + * Class which holds the localized text constants. + * + * @author Peter Dell + */ +public final class Texts extends NLS { + + public static String FILE_SECTION_FIELD_SIZE_LABEL; + public static String FILE_SECTION_FIELD_SIZE_NO_DATA; + public static String FILE_SECTION_FIELD_OFFSET_LABEL; + + public static String FIND_DEFAULT_FILE_CONVERTER_BUTTON_TOOLTIP; + public static String CREATE_CONVERSION_BUTTON_TOOLTIP; + + public static String FILES_CONVERTER_DATA_VIEW_TAB; + public static String IMAGE_CONVERTER_DATA_VIEW_TAB; + + public static String CONVERTER_PARAMETERS_CONVERTER_ID_LABEL; + public static String REFRESH_BUTTON_TOOLTIP; + public static String SAVE_IMAGE_BUTTON_TOOLTIP; + public static String SAVE_FILES_BUTTON_TOOLTIP; + + public static String CONVERTER_PARAMETERS_BIT_MAP_FILE_PATH_LABEL; + public static String CONVERTER_PARAMETERS_BIT_MAP_FILE_SECTION_LABEL; + public static String CONVERTER_PARAMETERS_CHAR_SET_FILE_PATH_LABEL; + public static String CONVERTER_PARAMETERS_CHAR_SET_FILE_SECTION_LABEL; + public static String CONVERTER_PARAMETERS_CHAR_MAP_FILE_PATH_LABEL; + public static String CONVERTER_PARAMETERS_CHAR_MAP_FILE_SECTION_LABEL; + public static String CONVERTER_PARAMETERS_COLOR_MAP_FILE_PATH_LABEL; + public static String CONVERTER_PARAMETERS_COLOR_MAP_FILE_SECTION_LABEL; + public static String CONVERTER_PARAMETERS_IMAGE_FILE_PATH_LABEL; + + // Files to image texts + public static String CONVERTER_PARAMETERS_COLUMNS_LABEL; + public static String CONVERTER_PARAMETERS_ROWS_LABEL; + + public static String CONVERTER_PARAMETERS_SPACING_COLOR_LABEL; + public static String CONVERTER_PARAMETERS_SPACING_WIDTH_LABEL; + + // Image to Files texts + public static String CONVERTER_PARAMETERS_USE_DEFAULT_SCRIPT_LABEL; + public static String CONVERTER_PARAMETERS_SCRIPT_LABEL; + + public static String CONVERTER_DATA_IMAGE_DATA_WIDTH_LABEL; + public static String CONVERTER_DATA_IMAGE_DATA_HEIGHT_LABEL; + + public static String CONVERTER_PARAMETERS_IMAGE_ASPECT_LABEL; + + public static String CREATE_CONVERSION_DIALOG_TITLE; + public static String CREATE_CONVERSION_DIALOG_MESSAGE; + public static String SAVE_AS_DIALOG_TITLE; + public static String SAVE_AS_DIALOG_MESSAGE; + + public static String CONVERTER_CONSOLE_TITLE; + + public static String IMAGE_VIEW_ASPECT_LABEL; + + public static String IMAGE_PALETTE_VIEW_EDIT_COLOR_ACTION_LABEL; + public static String IMAGE_PALETTE_VIEW_EDIT_COLOR_ACTION_TOOLTIP; + public static String IMAGE_PALETTE_VIEW_UNUSED_COLORS_ACTION_LABEL; + public static String IMAGE_PALETTE_VIEW_UNUSED_COLORS_ACTION_TOOLTIP; + public static String IMAGE_PALETTE_VIEW_INFO_NO_IMAGE; + public static String IMAGE_PALETTE_VIEW_INFO_INDEXED_PALETTE_IMAGE; + public static String IMAGE_PALETTE_VIEW_INFO_DIRECT_PALETTE_IMAGE; + + public static String IMAGE_PALETTE_VIEW_COLUMN_INDEX_TEXT; + public static String IMAGE_PALETTE_VIEW_COLUMN_COLOR_HEX_TEXT; + public static String IMAGE_PALETTE_VIEW_COLUMN_COLOR_BINARY_TEXT; + public static String IMAGE_PALETTE_VIEW_COLUMN_RGB_COLOR_TEXT; + public static String IMAGE_PALETTE_VIEW_COLUMN_COLOR_COUNT_TEXT; + public static String IMAGE_PALETTE_VIEW_COLUMN_COLOR_COUNT_PERCENT_TEXT; + + /** + * Messages for {@link GraphicsEditor}. + */ + public static String MESSAGE_S100 = "Source files loaded and converted in {0} ms"; + public static String MESSAGE_E400; + + /** + * Initializes the constants. + */ + static { + NLS.initializeMessages(Texts.class.getName(), Texts.class); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts.properties b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts.properties new file mode 100644 index 00000000..58da2f61 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts.properties @@ -0,0 +1,73 @@ +FILE_SECTION_FIELD_SIZE_LABEL=Size +FILE_SECTION_FIELD_SIZE_NO_DATA=No data +FILE_SECTION_FIELD_OFFSET_LABEL=Offset + +FIND_DEFAULT_FILE_CONVERTER_BUTTON_TOOLTIP=Find Converter +CREATE_CONVERSION_BUTTON_TOOLTIP=Create Conversion... + +# Tabs. +FILES_CONVERTER_DATA_VIEW_TAB=Files to Image +IMAGE_CONVERTER_DATA_VIEW_TAB=Image to Files + +# Tab content +CONVERTER_PARAMETERS_CONVERTER_ID_LABEL=Converter +REFRESH_BUTTON_TOOLTIP=Refresh +SAVE_IMAGE_BUTTON_TOOLTIP=Save Image +SAVE_FILES_BUTTON_TOOLTIP=Save Files + +CONVERTER_PARAMETERS_BIT_MAP_FILE_PATH_LABEL=Bit Map +CONVERTER_PARAMETERS_BIT_MAP_FILE_SECTION_LABEL=Bit Map +CONVERTER_PARAMETERS_CHAR_SET_FILE_PATH_LABEL=Char Set +CONVERTER_PARAMETERS_CHAR_SET_FILE_SECTION_LABEL=Char Set +CONVERTER_PARAMETERS_CHAR_MAP_FILE_PATH_LABEL=Char Map +CONVERTER_PARAMETERS_CHAR_MAP_FILE_SECTION_LABEL=Char Map +CONVERTER_PARAMETERS_COLOR_MAP_FILE_PATH_LABEL=Color Map +CONVERTER_PARAMETERS_COLOR_MAP_FILE_SECTION_LABEL=Color Map +CONVERTER_PARAMETERS_IMAGE_FILE_PATH_LABEL=Image + +CONVERTER_PARAMETERS_COLUMNS_LABEL=Columns +CONVERTER_PARAMETERS_ROWS_LABEL=Rows + +CONVERTER_PARAMETERS_SPACING_COLOR_LABEL=Spacing Color +CONVERTER_PARAMETERS_SPACING_WIDTH_LABEL=Spacing Width + +CONVERTER_PARAMETERS_USE_DEFAULT_SCRIPT_LABEL=Use Default Script +CONVERTER_PARAMETERS_SCRIPT_LABEL=Script + +CONVERTER_DATA_IMAGE_DATA_WIDTH_LABEL=Width +CONVERTER_DATA_IMAGE_DATA_HEIGHT_LABEL=Height +CONVERTER_PARAMETERS_IMAGE_ASPECT_LABEL=Aspect + +# Dialogs. + +CREATE_CONVERSION_DIALOG_TITLE=Create Conversion +CREATE_CONVERSION_DIALOG_MESSAGE=Creates a conversion file with the current settings, closes the current editor and opens the file a a new editor + +SAVE_AS_DIALOG_TITLE=Save As +SAVE_AS_DIALOG_MESSAGE=Save the current conversion file to another location + +# Converter Console +CONVERTER_CONSOLE_TITLE=Converter Console + +# Image View. +IMAGE_VIEW_ASPECT_LABEL=Aspect + +# Image Palette View. +IMAGE_PALETTE_VIEW_EDIT_COLOR_ACTION_LABEL=Edit +IMAGE_PALETTE_VIEW_EDIT_COLOR_ACTION_TOOLTIP=Edit the color of the currently selected table entry or select presets +IMAGE_PALETTE_VIEW_UNUSED_COLORS_ACTION_LABEL=Unused +IMAGE_PALETTE_VIEW_UNUSED_COLORS_ACTION_TOOLTIP=Toggle the display of the used colors in the indexed palette +IMAGE_PALETTE_VIEW_INFO_NO_IMAGE=No image +IMAGE_PALETTE_VIEW_INFO_INDEXED_PALETTE_IMAGE={0} bit indexed palette. {1} out of {2} colors used. +IMAGE_PALETTE_VIEW_INFO_DIRECT_PALETTE_IMAGE={0} bit direct palette. {1} colors used. + +IMAGE_PALETTE_VIEW_COLUMN_INDEX_TEXT=Index +IMAGE_PALETTE_VIEW_COLUMN_COLOR_HEX_TEXT=Hex +IMAGE_PALETTE_VIEW_COLUMN_COLOR_BINARY_TEXT=Binary +IMAGE_PALETTE_VIEW_COLUMN_RGB_COLOR_TEXT=Color +IMAGE_PALETTE_VIEW_COLUMN_COLOR_COUNT_TEXT=Count +IMAGE_PALETTE_VIEW_COLUMN_COLOR_COUNT_PERCENT_TEXT=Percent + +# Messages +MESSAGE_E400=Unused +MESSAGE_S100=Source files loaded and converted in {0} ms \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts_de_DE.properties b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts_de_DE.properties new file mode 100644 index 00000000..805482f2 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/Texts_de_DE.properties @@ -0,0 +1,72 @@ +FILE_SECTION_FIELD_SIZE_LABEL=Größe +FILE_SECTION_FIELD_SIZE_NO_DATA=Keine Daten +FILE_SECTION_FIELD_OFFSET_LABEL=Offset + +FIND_DEFAULT_FILE_CONVERTER_BUTTON_TOOLTIP=Finde Konverter +CREATE_CONVERSION_BUTTON_TOOLTIP=Konvertierung anlegen... + +# Tabs. +FILES_CONVERTER_DATA_VIEW_TAB=Datei nach Bild +IMAGE_CONVERTER_DATA_VIEW_TAB=Bild nach Datei + +# Tab content +CONVERTER_PARAMETERS_CONVERTER_ID_LABEL=Konverter +REFRESH_BUTTON_TOOLTIP=Aktualisieren +SAVE_IMAGE_BUTTON_TOOLTIP=Bild speichern +SAVE_FILES_BUTTON_TOOLTIP=Dateien speichern + +CONVERTER_PARAMETERS_BIT_MAP_FILE_PATH_LABEL=Bit Map +CONVERTER_PARAMETERS_BIT_MAP_FILE_SECTION_LABEL=Bit Map +CONVERTER_PARAMETERS_CHAR_SET_FILE_PATH_LABEL=Zeichensatz +CONVERTER_PARAMETERS_CHAR_SET_FILE_SECTION_LABEL=Zeichensatz +CONVERTER_PARAMETERS_CHAR_MAP_FILE_PATH_LABEL=Char Map +CONVERTER_PARAMETERS_CHAR_MAP_FILE_SECTION_LABEL=Char Map +CONVERTER_PARAMETERS_COLOR_MAP_FILE_PATH_LABEL=Color Map +CONVERTER_PARAMETERS_COLOR_MAP_FILE_SECTION_LABEL=Color Map +CONVERTER_PARAMETERS_IMAGE_FILE_PATH_LABEL=Bild + +CONVERTER_PARAMETERS_COLUMNS_LABEL=Spalten +CONVERTER_PARAMETERS_ROWS_LABEL=Zeilen + +CONVERTER_PARAMETERS_SPACING_COLOR_LABEL=Freiraumfarbe +CONVERTER_PARAMETERS_SPACING_WIDTH_LABEL=Freiraumbreite + +CONVERTER_PARAMETERS_USE_DEFAULT_SCRIPT_LABEL=Standard Skript verwenden +CONVERTER_PARAMETERS_SCRIPT_LABEL=Skript + +CONVERTER_DATA_IMAGE_DATA_WIDTH_LABEL=Breite +CONVERTER_DATA_IMAGE_DATA_HEIGHT_LABEL=Höhe +CONVERTER_PARAMETERS_IMAGE_ASPECT_LABEL=Seitenverhältnis + +# Dialogs. + +CREATE_CONVERSION_DIALOG_TITLE=Konvertierung anlegen +CREATE_CONVERSION_DIALOG_MESSAGE=Legt eine Konvertierungs-Datei mit den aktuellen Einstellungen an, schließt den aktuellen Editor und öffnet die neue Datei in einem neuen Editor + +SAVE_AS_DIALOG_TITLE=Speichern unter +SAVE_AS_DIALOG_MESSAGE=Speicher die aktuelle Konvertierungs-Datei an einen anderen Ort + +# Converter Console +CONVERTER_CONSOLE_TITLE=Konverter Konsole + +# Image View. +IMAGE_VIEW_ASPECT_LABEL=Seitenverhältnis + +# Image Palette View. +IMAGE_PALETTE_VIEW_EDIT_COLOR_ACTION_LABEL=Bearbeiten +IMAGE_PALETTE_VIEW_EDIT_COLOR_ACTION_TOOLTIP=Bearbeitet die Farbe des aktuelle ausgewählten Tabelleneintrages oder wählt eine der Voreinstellungen aus +IMAGE_PALETTE_VIEW_UNUSED_COLORS_ACTION_LABEL=Nicht verwendet +IMAGE_PALETTE_VIEW_UNUSED_COLORS_ACTION_TOOLTIP=Schaltet die Anzeige der nicht verwendeten Farben in der Index-Palette um +IMAGE_PALETTE_VIEW_INFO_NO_IMAGE=Kein Bild +IMAGE_PALETTE_VIEW_INFO_INDEXED_PALETTE_IMAGE={0} Bit Index-Palette. {1} von {2} Farben verwendet. +IMAGE_PALETTE_VIEW_INFO_DIRECT_PALETTE_IMAGE={0} Bit Direkt-Palette. {1} Farben verwendent. + +IMAGE_PALETTE_VIEW_COLUMN_INDEX_TEXT=Index +IMAGE_PALETTE_VIEW_COLUMN_COLOR_HEX_TEXT=Hex +IMAGE_PALETTE_VIEW_COLUMN_COLOR_BINARY_TEXT=Binär +IMAGE_PALETTE_VIEW_COLUMN_RGB_COLOR_TEXT=Farbe +IMAGE_PALETTE_VIEW_COLUMN_COLOR_COUNT_TEXT=Anzahl +IMAGE_PALETTE_VIEW_COLUMN_COLOR_COUNT_PERCENT_TEXT=Prozent + +# Messages +MESSAGE_E400=Nicht verwendet \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/Converter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/Converter.java new file mode 100644 index 00000000..0bb40db7 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/Converter.java @@ -0,0 +1,182 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.model.Palette; + +public abstract class Converter { + + private ConverterDefinition definition; + + /** + * Constants for 1 bit pixels. Constants are defined as int to ensure no + * sign extension takes place when anding with byte values. + */ + protected static final int[] mask_1bit = new int[] { 0x80, 0x40, 0x20, + 0x10, 0x08, 0x04, 0x02, 0x01 }; + protected static final int[] shift_1bit = new int[] { 7, 6, 5, 4, 3, 2, 1, + 0 }; + + /** + * Constants for 2 bit pixels.Constants are defined as int to ensure no sign + * extension takes place when anding with byte values. + */ + protected static final int[] mask_2bit = new int[] { 0xc0, 0x30, 0x0c, 0x03 }; + protected static final int[] shift_2bit = new int[] { 6, 4, 2, 0 }; + + /** + * Constants for 4 bit pixels.Constants are defined as int to ensure no sign + * extension takes place when anding with byte values. + */ + protected static final int[] mask_4bit = new int[] { 0xf0, 0x0f }; + protected static final int[] shift_4bit = new int[] { 4, 0 }; + + /** + * Creation is protected. + */ + protected Converter() { + } + + /** + * Sets the definition of the Converter. Called by {@link ConverterRegistry} + * only. + * + * @param definition + * The definition if the Converter, not null. + */ + final void setDefinition(ConverterDefinition definition) { + if (definition == null) { + throw new IllegalArgumentException( + "Parameter 'type' must not be null."); + } + this.definition = definition; + } + + /** + * Gets the definition of the Converter. + * + * @return The definition of the Converter, not null. + */ + public final ConverterDefinition getDefinition() { + if (definition == null) { + throw new IllegalStateException( + "Field 'definition' must not be null."); + } + return definition; + } + + /** + * Determines if the given byte array can be converted to an image by this + * converter. + * + * @param bytes + * The byte array, not empty and not null. + * + * @return true if the given byte array can be converted to an + * image by this converter, false otherwise. + * + * @since 1.6.0 + */ + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return false; + } + + /** + * Converts the byte array content to image size and palette. Implementation + * shall call + * {@link #setImageSizeAndPalette(FilesConverterData, int, int, Palette, RGB[])} + * to set the corresponding values. + * + * @param data + * The file converter data container to be filled, not + * null. + * @param bytes + * The byte array, not empty and not null. + * + * @since 1.6.0 + */ + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + throw new UnsupportedOperationException(); + } + + /** + * Sets the current converter, applies its defaults and then sets the image + * size and palette. + * + * @param data + * The file converter data container to be filled, not + * null. + * @param columns + * The number of columns. + * @param rows + * The number of rows. + * @param palette + * The palette, not null. + * @param paletteColors + * The palette colors or not null if palette is + * {@link Palette#TRUE_COLOR}. + */ + protected final void setImageSizeAndPalette(FilesConverterData data, + int columns, int rows, Palette palette, RGB[] paletteColors) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (palette == null) { + throw new IllegalArgumentException( + "Parameter 'palette' must not be null."); + } + if (paletteColors == null) { + if (!palette.equals(Palette.TRUE_COLOR)) { + throw new IllegalArgumentException( + "Parameter 'paletteColors' must not be null if palette is not TRUE_COLOR."); + } + paletteColors = new RGB[0]; + } + FilesConverterParameters parameters; + parameters = data.getParameters(); + parameters.setConverterId(this.getClass().getName()); + parameters.setDisplayAspect(getDefinition() + .getTargetImageDisplayAspect()); + parameters.setColumns(columns); + parameters.setRows(rows); + parameters.setPalette(palette); + parameters.setPaletteRGBs(paletteColors); + } + + public abstract void convertToImageDataSize(FilesConverterData data); + + /** + * Converts the files to an image. + * + * @param data + * The data, not null. + * @return true if an image was created and can be saved (i.e. + * pixels set), false if not. + */ + public abstract boolean convertToImageData(FilesConverterData data); +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterCommonData.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterCommonData.java new file mode 100644 index 00000000..40cea8d7 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterCommonData.java @@ -0,0 +1,131 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.swt.graphics.ImageData; + +/** + * Base class for {@link FilesConverterData} and {@link ImageConverterData}. + * + * @author Peter Dell + * + */ +public abstract class ConverterCommonData { + + protected final ConverterData converterData; + + private int imageDataWidth; + private int imageDataHeight; + protected ImageData imageData; + private ImageColorHistogram imageColorHistogram; + + ConverterCommonData(ConverterData converterData) { + if (converterData == null) { + throw new IllegalArgumentException( + "Parameter 'converterData' must not be null."); + } + + this.converterData = converterData; + imageData = null; + imageColorHistogram = new ImageColorHistogram(); + } + + public final IPath getFilePathPrefix() { + IPath result; + if (converterData.isValid()) { + result = converterData.getFile().getFullPath() + .removeLastSegments(1); + } else { + result = new Path(""); + + } + return result; + } + + public abstract boolean isCreateConversionEnabled(); + + public abstract boolean isValid(); + + public abstract boolean isRefreshEnabled(); + + protected void clear() { + imageData = null; + imageColorHistogram.clear(); + } + + public final void setImageDataWidth(int width) { + this.imageDataWidth = width; + } + + public final int getImageDataWidth() { + return imageDataWidth; + } + + public final void setImageDataHeight(int height) { + this.imageDataHeight = height; + } + + public final int getImageDataHeight() { + return imageDataHeight; + } + + /** + * Sets the image data. + * + * @param imageData + * The image data, may be null. + */ + final void setImageData(ImageData imageData) { + this.imageData = imageData; + imageColorHistogram = null; + } + + /** + * Gets the image data. + * + * @return The image data or null. + */ + public final ImageData getImageData() { + return imageData; + } + + /** + * Sets the image color histogram. + * + * @param imageColorHistogram + * The image color histogram, may be null. + * + * @since 1.6.0 + */ + final void setImageColorHistogram(ImageColorHistogram imageColorHistogram) { + this.imageColorHistogram = imageColorHistogram; + } + + /** + * Gets the image color histogram. + * + * @return The image color histogram, not null. + */ + public final ImageColorHistogram getImageColorHistogram() { + return imageColorHistogram; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterCommonParameters.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterCommonParameters.java new file mode 100644 index 00000000..c9ff02b9 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterCommonParameters.java @@ -0,0 +1,234 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import com.wudsn.ide.gfx.model.Aspect; +import com.wudsn.ide.gfx.model.GraphicsPropertiesSerializer; + +public abstract class ConverterCommonParameters { + + /** + * Names of the attributes. + * + * @author Peter Dell + * + */ + public static final class Attributes { + + /** + * Creation is private. + */ + private Attributes() { + } + + public static final String CONVERTER_ID = "converterId"; + + public static final String IMAGE_ASPECT = "imageAspect"; + + // Display attributes. + public static final String DISPLAY_ASPECT = "displayAspect"; + public static final String DISPLAY_SHRINK_TO_FIT = "displayShrinkToFit"; + public static final String DISPLAY_ZOOM_TO_FIT = "displayZoomToFit"; + } + + /** + * Defaults of the attributes. + * + * @author Peter Dell + * + */ + private static final class Defaults { + + /** + * Creation is protected. + */ + private Defaults() { + } + + public static final String CONVERTER_ID = ""; + + public static final Aspect IMAGE_ASPECT = new Aspect(1, 1); + public static final Aspect DISPLAY_ASPECT = new Aspect(1, 1); + public static final boolean DISPLAY_SHRINK_TO_FIT = false; + public static final boolean DISPLAY_ZOOM_TO_FIT = true; + } + + /** + * Message ids of the attributes. + * + * @author Peter Dell + * + */ + public static final class MessageIds { + + /** + * Creation is private. + */ + private MessageIds() { + } + + public static final int CONVERTER_ID = 1000; + public static final int IMAGE_ASPECT = 1001; + public static final int DISPLAY_ASPECT = 1002; + } + + protected String converterId; + + private Aspect imageAspect; + private Aspect displayAspect; + private boolean displayShrinkToFit; + private boolean displayZoomToFit; + + ConverterCommonParameters() { + } + + protected void setDefaults() { + converterId = Defaults.CONVERTER_ID; + imageAspect = Defaults.IMAGE_ASPECT; + displayAspect = Defaults.DISPLAY_ASPECT; + displayShrinkToFit = Defaults.DISPLAY_SHRINK_TO_FIT; + displayZoomToFit = Defaults.DISPLAY_ZOOM_TO_FIT; + } + + public abstract void setConverterId(String value); + + + public final String getConverterId() { + return converterId; + } + + public final void setImageAspect(Aspect value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.imageAspect = value; + } + + public final Aspect getImageAspect() { + return imageAspect; + } + + public final void setDisplayAspect(Aspect value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.displayAspect = value; + } + + public final Aspect getDisplayAspect() { + return displayAspect; + } + + public final void setDisplayShrinkToFit(boolean displayShrinkToFit) { + this.displayShrinkToFit = displayShrinkToFit; + } + + public final boolean isDisplayShrinkToFit() { + return displayShrinkToFit; + } + + public final void setDisplayZoomToFit(boolean displayZoomToFit) { + this.displayZoomToFit = displayZoomToFit; + } + + public final boolean isDisplayZoomToFit() { + return displayZoomToFit; + } + + protected void copyTo(ConverterCommonParameters target) { + if (target == null) { + throw new IllegalArgumentException( + "Parameter 'target' must not be null."); + } + + target.setConverterId(converterId); + target.setImageAspect(imageAspect); + target.setDisplayAspect(displayAspect); + target.setDisplayShrinkToFit(displayShrinkToFit); + target.setDisplayZoomToFit(displayZoomToFit); + } + + protected boolean equals(ConverterCommonParameters target) { + if (target == null) { + throw new IllegalArgumentException( + "Parameter 'target' must not be null."); + } + boolean result; + + result = target.getImageAspect().equals(imageAspect); + result = result && target.getDisplayAspect().equals(displayAspect); + result = result && target.isDisplayShrinkToFit() == displayShrinkToFit; + result = result && target.isDisplayZoomToFit() == displayZoomToFit; + return result; + } + + protected void serialize(GraphicsPropertiesSerializer serializer, String key) { + if (serializer == null) { + throw new IllegalArgumentException( + "Parameter 'serializer' must not be null."); + } + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + GraphicsPropertiesSerializer ownSerializer; + + ownSerializer = new GraphicsPropertiesSerializer(); + ownSerializer.writeString(Attributes.CONVERTER_ID, converterId); + ownSerializer.writeAspect(Attributes.IMAGE_ASPECT, imageAspect); + ownSerializer.writeAspect(Attributes.DISPLAY_ASPECT, displayAspect); + ownSerializer.writeBoolean(Attributes.DISPLAY_SHRINK_TO_FIT, + displayShrinkToFit); + ownSerializer.writeBoolean(Attributes.DISPLAY_ZOOM_TO_FIT, + displayZoomToFit); + + serializer.writeProperties(key, ownSerializer); + } + + protected void deserialize(GraphicsPropertiesSerializer serializer, + String key) { + if (serializer == null) { + throw new IllegalArgumentException( + "Parameter 'serializer' must not be null."); + } + if (key == null) { + throw new IllegalArgumentException(); + } + + GraphicsPropertiesSerializer ownSerializer; + ownSerializer = new GraphicsPropertiesSerializer(); + serializer.readProperties(key, ownSerializer); + + setConverterId(ownSerializer.readString(Attributes.CONVERTER_ID, + Defaults.CONVERTER_ID)); + + imageAspect = ownSerializer.readXYFactor(Attributes.DISPLAY_ASPECT, + Defaults.IMAGE_ASPECT); + displayAspect = ownSerializer.readXYFactor(Attributes.DISPLAY_ASPECT, + Defaults.DISPLAY_ASPECT); + displayShrinkToFit = ownSerializer.readBoolean( + Attributes.DISPLAY_SHRINK_TO_FIT, + Defaults.DISPLAY_SHRINK_TO_FIT); + displayZoomToFit = ownSerializer.readBoolean( + Attributes.DISPLAY_ZOOM_TO_FIT, Defaults.DISPLAY_ZOOM_TO_FIT); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterConsole.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterConsole.java new file mode 100644 index 00000000..7a45874f --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterConsole.java @@ -0,0 +1,101 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.io.PrintStream; + +import org.eclipse.ui.console.ConsolePlugin; +import org.eclipse.ui.console.IConsole; +import org.eclipse.ui.console.IConsoleManager; +import org.eclipse.ui.console.IConsoleView; +import org.eclipse.ui.console.MessageConsole; +import org.eclipse.ui.console.MessageConsoleStream; + +import com.wudsn.ide.gfx.Texts; + +/** + * The console to show the user the output from the converter. + * + * @author Peter Dell + */ +public final class ConverterConsole { + + private IConsoleManager consoleManager; + public MessageConsole console; + + private MessageConsoleStream messageStream; + private PrintStream printStream; + + /** + * Create a new console-window. + * + */ + public ConverterConsole() { + consoleManager = ConsolePlugin.getDefault().getConsoleManager(); + console = new MessageConsole(Texts.CONVERTER_CONSOLE_TITLE, null); + consoleManager.addConsoles(new IConsole[] { console }); + + messageStream = console.newMessageStream(); + messageStream.setActivateOnWrite(false); + messageStream.print(""); + printStream = new PrintStream(messageStream); + } + + /** + * Brings this console view instance to front in the console view editor + * part. + * + * @param consoleView + * The console view editor part, not null. + */ + + public void display(IConsoleView consoleView) { + if (consoleView == null) { + throw new IllegalArgumentException( + "Parameter 'consoleView' must not be null."); + } + consoleView.display(console); + + } + + /** + * Add a line to console. + * + * @param message + * The message to print, not null. + */ + public void println(String message) { + if (message == null) { + throw new IllegalArgumentException( + "Parameter 'message' must not be null."); + } + messageStream.println(message); + } + + /** + * Gets a print messageStream to write to this console. + * + * @return The print messageStream, not null. + */ + public PrintStream getPrintStream() { + return printStream; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterData.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterData.java new file mode 100644 index 00000000..8064d094 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterData.java @@ -0,0 +1,161 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.IPath; + +import com.wudsn.ide.base.common.IPathUtility; +import com.wudsn.ide.gfx.model.ConverterDirection; +import com.wudsn.ide.gfx.model.ConverterMode; + +public final class ConverterData { + + private static final class Defaults { + + /** + * Creation is private. + */ + private Defaults() { + } + + public static final ConverterMode CONVERTER_MODE = ConverterMode.NONE; + } + + private IFile file; + private IPath filePathPrefix; + + private ConverterMode converterMode; + private ConverterParameters parameters; + private ConverterParameters parametersBackup; + + private FilesConverterData filesConverterData; + private ImageConverterData imageConverterData; + + ConverterData() { + parameters = new ConverterParameters(); + parametersBackup = new ConverterParameters(); + filesConverterData = new FilesConverterData(this); + imageConverterData = new ImageConverterData(this); + clear(); + } + + public void setFile(IFile file) { + this.file = file; + if (file != null) { + filePathPrefix = file.getFullPath().removeLastSegments(1); + } else { + filePathPrefix = IPathUtility.createEmptyPath(); + + } + } + + public IFile getFile() { + return file; + } + + public IPath getFilePathPrefix() { + return filePathPrefix; + } + + public boolean isValid() { + return file != null; + } + + public void setConverterMode(ConverterMode value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.converterMode = value; + } + + public ConverterMode getConverterMode() { + return converterMode; + } + + public boolean isValidFile() { + return isValid() + && (converterMode == ConverterMode.RAW_FILE || converterMode == ConverterMode.CNV); + } + + public boolean isValidImage() { + return isValid() + && (converterMode == ConverterMode.RAW_IMAGE || converterMode == ConverterMode.CNV); + } + + public boolean isValidConversion() { + return isValid() && converterMode == ConverterMode.CNV; + } + + public ConverterDirection getConverterDirection() { + + return parameters.getConverterDirection(); + } + + public ConverterParameters getParameters() { + return parameters; + } + + public ConverterCommonData getConverterCommonData() { + switch (parameters.getConverterDirection()) { + case FILES_TO_IMAGE: + return filesConverterData; + case IMAGE_TO_FILES: + return imageConverterData; + default: + throw new IllegalStateException("Unknown converter direction " + + parameters.getConverterDirection() + "."); + } + } + + public FilesConverterData getFilesConverterData() { + return filesConverterData; + } + + public ImageConverterData getImageConverterData() { + return imageConverterData; + } + + public void clear() { + file = null; + clearContent(); + } + + public void clearContent() { + converterMode = Defaults.CONVERTER_MODE; + parameters.setDefaults(); + filesConverterData.clear(); + imageConverterData.clear(); + + } + + final void copyParametersToBackup() { + parametersBackup.setDefaults(); + parameters.copyTo(parametersBackup); + } + + public boolean isChanged() { + boolean result; + result = !parameters.equals(parametersBackup); + return result; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterDataLogic.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterDataLogic.java new file mode 100644 index 00000000..e3f04abb --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterDataLogic.java @@ -0,0 +1,787 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.swt.SWT; +import org.eclipse.swt.SWTException; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.ImageLoader; +import org.eclipse.swt.graphics.PaletteData; +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.base.BasePlugin; +import com.wudsn.ide.base.common.FileUtility; +import com.wudsn.ide.base.common.HexUtility; +import com.wudsn.ide.base.common.IPathUtility; +import com.wudsn.ide.base.common.StringUtility; +import com.wudsn.ide.base.gui.MessageManager; +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.converter.FilesConverterParameters.SourceFile; +import com.wudsn.ide.gfx.converter.ImageConverterParameters.TargetFile; +import com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter; +import com.wudsn.ide.gfx.model.ConverterDirection; +import com.wudsn.ide.gfx.model.ConverterMode; + +public final class ConverterDataLogic { + private MessageManager messageManager; + private FilesConverterDataLogic filesConverterDataLogic; + + /** + * Helper class to detect the support image file formats by their extension. + * + * @author Peter Dell + */ + private static final class ImageExtensions { + public static final String CNV = "cnv"; + public static final String BMP = "bmp"; + public static final String ICO = "ico"; + public static final String GIF = "gif"; + public static final String JPG = "jpg"; + public static final String PNG = "png"; + + public static final int UNKNOWN_FORMAT = -1; + + public static int getImageFormat(IPath filePath) { + int result; + + String fileExtension = filePath.getFileExtension(); + if (fileExtension == null) { + result = UNKNOWN_FORMAT; + } else if (fileExtension.equalsIgnoreCase(BMP)) { + result = SWT.IMAGE_BMP; + } else if (fileExtension.equalsIgnoreCase(ICO)) { + result = SWT.IMAGE_ICO; + } else if (fileExtension.equalsIgnoreCase(GIF)) { + result = SWT.IMAGE_GIF; + } else if (fileExtension.equalsIgnoreCase(JPG)) { + result = SWT.IMAGE_JPEG; + } else if (fileExtension.equalsIgnoreCase(PNG)) { + result = SWT.IMAGE_PNG; + } else { + result = UNKNOWN_FORMAT; + } + return result; + } + } + + public ConverterDataLogic(MessageManager messageManager) { + if (messageManager == null) { + throw new IllegalArgumentException("Parameter 'messageManager' must not be null."); + } + this.messageManager = messageManager; + filesConverterDataLogic = new FilesConverterDataLogic(); + } + + public ConverterData createData() { + return new ConverterData(); + } + + public void load(ConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + + data.clearContent(); + + IFile file = data.getFile(); + String fileName = file.getFullPath().lastSegment(); + String extension = file.getFileExtension(); + if (extension == null) { + extension = ""; + } else { + extension = extension.toLowerCase(); + } + + if (extension.equals(ImageExtensions.CNV)) { + data.setConverterMode(ConverterMode.CNV); + try { + + data.getParameters().read(file); + + } catch (CoreException ex) { + messageManager.sendMessage(0, ex); + } + loadSources(data, true); + } else { + int imageFormat = ImageExtensions.getImageFormat(file.getFullPath()); + if (imageFormat != ImageExtensions.UNKNOWN_FORMAT) { + data.setConverterMode(ConverterMode.RAW_IMAGE); + data.getParameters().setConverterDirection(ConverterDirection.IMAGE_TO_FILES); + data.getImageConverterData().getParameters().setImageFilePath(fileName); + data.getImageConverterData().getParameters() + .setConverterId(LinearBitMapGraphics8Converter.class.getName()); + loadSources(data, true); + + } else { + data.setConverterMode(ConverterMode.RAW_FILE); + data.getParameters().setConverterDirection(ConverterDirection.FILES_TO_IMAGE); + data.getFilesConverterData().getParameters().setDefaultSourceFilePath(fileName); + data.getFilesConverterData().getParameters().setImageFilePath(fileName + "." + ImageExtensions.PNG); + findDefaultFileConverter(data); + loadSources(data, true); + } + + } + + } + + public void findDefaultFileConverter(ConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + FilesConverterData filesConverterData; + filesConverterData = data.getFilesConverterData(); + FilesConverterParameters fileConverterParameters = filesConverterData.getParameters(); + + IPath filePathPrefix = filesConverterData.getFilePathPrefix(); + + SourceFile sourceFile = fileConverterParameters.getSourceFile(0); + IPath filePath = Path.fromPortableString(sourceFile.getPath()); + filePath = IPathUtility.makeAbsolute(filePath, filePathPrefix, false); + byte[] bytes = loadSourceFile(sourceFile.getPathMessageId(), filePath); + + // TODO: If bytes is null or length is 0, an error message should be displayed instead. + if (bytes != null) { + String fileExtension = filePath.getFileExtension(); + if (fileExtension != null) { + fileExtension = fileExtension.toLowerCase(); + } else { + fileExtension = ""; + } + filesConverterDataLogic.findDefaultFileConverter(filesConverterData, bytes, fileExtension); + + } + } + + public boolean loadSources(ConverterData data, boolean copyToBackup) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + boolean success; + + success = true; + switch (data.getConverterDirection()) { + case FILES_TO_IMAGE: + + FilesConverterData filesConverterData; + filesConverterData = data.getFilesConverterData(); + FilesConverterParameters fileConverterParameters = filesConverterData.getParameters(); + + IPath filePathPrefix = filesConverterData.getFilePathPrefix(); + for (int i = 0; i < fileConverterParameters.getSourceFilesSize(); i++) { + SourceFile sourceFile = fileConverterParameters.getSourceFile(i); + IPath filePath = Path.fromPortableString(sourceFile.getPath()); + filePath = IPathUtility.makeAbsolute(filePath, filePathPrefix, false); + byte[] bytes = loadSourceFile(sourceFile.getPathMessageId(), filePath); + filesConverterData.setSourceFileBytes(sourceFile.getId(), bytes); + if (bytes == null) { + success = false; + } + } + + break; + case IMAGE_TO_FILES: + ImageConverterData imageConverterData; + imageConverterData = data.getImageConverterData(); + + filePathPrefix = imageConverterData.getFilePathPrefix(); + IPath filePath = Path.fromPortableString(imageConverterData.getParameters().getImageFilePath()); + filePath = IPathUtility.makeAbsolute(filePath, filePathPrefix, false); + ImageData imageData = loadSourceImage(ImageConverterParameters.MessageIds.IMAGE_FILE_PATH, filePath); + imageConverterData.setImageData(imageData); + if (imageData != null) { + // Remember last loaded state. + success = true; + + } else { + success = false; + } + break; + default: + throw new RuntimeException("Unknown converter direction '" + data.getConverterDirection() + "'."); + + } + + // Remember last loaded state. + if (success && copyToBackup) { + data.copyParametersToBackup(); + } + + return success; + } + + /** + * Applies the converter based default values after the converter has been + * selected. + * + * @param data + * The converter data, not null. + */ + public void applyDefaults(ConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + + switch (data.getConverterDirection()) { + case FILES_TO_IMAGE: + filesConverterDataLogic.applyDefaults(data.getFilesConverterData()); + + break; + case IMAGE_TO_FILES: + + break; + default: + throw new RuntimeException("Unknown converter direction '" + data.getConverterDirection() + "'."); + } + } + + public ConverterData createConversion(ConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + if (!data.isValid()) { + throw new IllegalStateException("Converter data is not valid."); + } + if (data.getConverterMode() != ConverterMode.RAW_FILE && data.getConverterMode() != ConverterMode.RAW_IMAGE) { + throw new IllegalStateException("Converter data is not in mode RAW_FILE or RAW_IMAGE."); + } + + // Compute new file name. + IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); + IPath saveAsPath = data.getFile().getFullPath().addFileExtension(ImageExtensions.CNV); + IFile saveAsFile = workspaceRoot.getFile(saveAsPath); + + // Compute new content. + ConverterData newConverterData = new ConverterData(); + newConverterData.setConverterMode(ConverterMode.CNV); + newConverterData.setFile(saveAsFile); + data.getParameters().copyTo(newConverterData.getParameters()); + + return newConverterData; + } + + public IFile saveConversion(ConverterData data, IProgressMonitor monitor) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + + IFile saveFile; + String saveFilePath; + saveFile = data.getFile(); + saveFilePath = saveFile.getFullPath().toString(); + + try { + InputStream inputStream; + inputStream = data.getParameters().getContents(saveFilePath); + if (saveFile.exists()) { + saveFile.setContents(inputStream, false, false, monitor); + } else { + saveFile.create(inputStream, true, monitor); + } + // Remember last saved state. + data.copyParametersToBackup(); + + } catch (CoreException ex) { + messageManager.sendMessage(0, ex); + saveFile = null; + } + return saveFile; + } + + public void saveTargets(ConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + IPath filePathPrefix; + IPath filePath; + if (convert(data)) { + switch (data.getConverterDirection()) { + case FILES_TO_IMAGE: + + FilesConverterData filesConverterData; + filesConverterData = data.getFilesConverterData(); + + filePathPrefix = filesConverterData.getFilePathPrefix(); + filePath = Path.fromPortableString(filesConverterData.getParameters().getImageFilePath()); + filePath = IPathUtility.makeAbsolute(filePath, filePathPrefix, false); + saveTargetImage(FilesConverterParameters.MessageIds.IMAGE_FILE_PATH, filePath, + filesConverterData.getImageData()); + break; + case IMAGE_TO_FILES: + ImageConverterData imageConverterData; + ImageConverterParameters imageConverterParameters; + imageConverterData = data.getImageConverterData(); + imageConverterParameters = imageConverterData.getParameters(); + + filePathPrefix = imageConverterData.getFilePathPrefix(); + int size = imageConverterData.getConverter().getDefinition().getTargetFileDefinitions().size(); + int minSize = Math.min(size, imageConverterParameters.getTargetFilesSize()); + boolean saved = true; + for (int i = 0; i < minSize; i++) { + TargetFile targetFile = imageConverterParameters.getTargetFile(i); + filePath = Path.fromPortableString(targetFile.getPath()); + filePath = IPathUtility.makeAbsolute(filePath, filePathPrefix, false); + saved &= saveTargetFile(targetFile.getPathMessageId(), filePath, + imageConverterData.getTargetFileBytes(targetFile.getId())); + } + if (!saved) { + for (int i = 0; i < minSize; i++) { + TargetFile targetFile = imageConverterParameters.getTargetFile(i); + messageManager.sendMessage(targetFile.getPathMessageId(), IStatus.ERROR, + "No target file with file path and content present"); + } + + } + break; + default: + throw new RuntimeException("Unknown converter direction '" + data.getConverterDirection() + "'."); + + } + } + } + + /** + * Saves a target file, if path and content are present. Empty content is + * allowed, null content is interpreted as missing file. + * + * @param messageId + * The message id. + * @param filePath + * The target file path, may be empty, not null. + * @param bytes + * The target file content, may be empty or null. + * + * @return true if the file was save, false + * otherwise. + */ + private boolean saveTargetFile(int messageId, IPath filePath, byte[] bytes) { + if (filePath == null) { + throw new IllegalArgumentException("Parameter 'filePath' must not be null."); + } + boolean result; + + if (filePath.isEmpty()) { + messageManager.sendMessage(messageId, IStatus.WARNING, "No target file path specified"); + return false; + } + if (bytes == null) { + messageManager.sendMessage(messageId, IStatus.INFO, "File {0} not saved as there is no data for this file", + filePath.toPortableString()); + return false; + } + + IWorkspaceRoot workspaceRoot; + IFile saveFile; + IProgressMonitor monitor; + + result = false; + workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); + saveFile = workspaceRoot.getFile(filePath); + monitor = null; + + try { + InputStream inputStream; + inputStream = new ByteArrayInputStream(bytes); + if (saveFile.exists()) { + saveFile.setContents(inputStream, false, false, monitor); + } else { + saveFile.create(inputStream, true, monitor); + } + + } catch (CoreException ex) { + messageManager.sendMessage(0, ex); + saveFile = null; + } + + if (saveFile != null) { + messageManager.sendMessage(messageId, IStatus.INFO, "File {0} saved with ${1} bytes", + filePath.toPortableString(), HexUtility.getLongValueHexString(bytes.length)); + result = true; + } + return result; + } + + private void saveTargetImage(int messageId, IPath filePath, ImageData imageData) { + if (filePath == null) { + throw new IllegalArgumentException("Parameter 'filePath' must not be null."); + } + if (filePath.isEmpty()) { + messageManager.sendMessage(messageId, IStatus.ERROR, "No image path specified"); + return; + } + if (imageData == null) { + messageManager.sendMessage(messageId, IStatus.ERROR, + "Image {0} not saved as there is no data for this image", filePath.toPortableString()); + return; + } + + ImageLoader imageLoader = new ImageLoader(); + imageLoader.data = new ImageData[] { imageData }; + int format = ImageExtensions.getImageFormat(filePath); + if (format == ImageExtensions.UNKNOWN_FORMAT) { + messageManager.sendMessage(messageId, IStatus.ERROR, + "Image {0} not saved as there is the extension cannot be mapped to a supported image format", + filePath.toPortableString()); + return; + } + + boolean success = false; + IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath); + try { + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + imageLoader.save(bos, format); + bos.close(); + ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); + if (!file.exists()) { + file.create(bis, IResource.FORCE, null); + } else { + file.setContents(bis, IResource.FORCE, null); + } + success = true; + } catch (Exception ex) { + messageManager.sendMessage(messageId, IStatus.ERROR, "Image {0} not saved. {1}", + filePath.toPortableString(), ex.getMessage()); + } + // file.refreshLocal(IResource.DEPTH_ZERO, null); + + if (success) { + messageManager.sendMessage(messageId, IStatus.INFO, "Image {0} saved", filePath.toPortableString()); + } + } + + private ImageData loadSourceImage(int messageId, IPath filePath) { + if (filePath == null) { + throw new IllegalArgumentException("Parameter 'fileSection' must not be null."); + } + ImageData imageData = null; + if (!filePath.isEmpty()) { + IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath); + + InputStream is; + try { + is = file.getContents(true); + } catch (CoreException ex) { + messageManager.sendMessage(messageId, ex); + is = null; + } + + if (is != null) { + try { + try { + imageData = new ImageData(is); + + } catch (SWTException ex) { + messageManager.sendMessage(messageId, IStatus.ERROR, + "Cannot open image file. " + ex.getMessage()); + + } + } finally { + try { + is.close(); + } catch (IOException ex) { + BasePlugin.getInstance().logError("Cannot close input stream for {0}", + new Object[] { filePath }, ex); + } + } + } + + } + return imageData; + } + + private byte[] loadSourceFile(int messageId, IPath filePath) { + if (filePath == null) { + throw new IllegalArgumentException("Parameter 'filePath' must not be null."); + } + byte[] result; + + if (!filePath.isEmpty()) { + try { + IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath); + + result = FileUtility.readBytes(file, FileUtility.MAX_SIZE_1MB, true); + } catch (CoreException ex) { + messageManager.sendMessage(messageId, ex); + result = null; + } catch (IllegalArgumentException ex) { + messageManager.sendMessage(messageId, IStatus.ERROR, ex.getMessage()); + result = null; + } + + } else { + result = null; + } + return result; + } + + public boolean convert(ConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + ConverterDirection converterDirection; + converterDirection = data.getConverterDirection(); + boolean result; + switch (converterDirection) { + + case FILES_TO_IMAGE: + result = convertFilesToImage(data); + break; + + case IMAGE_TO_FILES: + result = convertImageToFiles(data); + break; + + default: + throw new RuntimeException("Unknown converter direction '" + converterDirection + "'."); + } + return result; + } + + private boolean convertImageToFiles(ConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + if (!data.isValidImage()) { + return false; + } + + ImageConverterData imageConverterData; + imageConverterData = data.getImageConverterData(); + + ImageConverterParameters imageConverterParameters; + imageConverterParameters = imageConverterData.getParameters(); + + // Setup image data fields. + if (imageConverterData.getImageData() == null) { + + // Create empty image data. + PaletteData palette = new PaletteData(255, 255, 255); + data.getImageConverterData().setImageData(new ImageData(320, 256, 8, palette)); + imageConverterData.setImageColorHistogram(null); + + } else { + ImageColorHistogram imageColorHistogram = new ImageColorHistogram(); + imageColorHistogram.analyze(imageConverterData.getImageData()); + imageConverterData.setImageColorHistogram(imageColorHistogram); + + } + + imageConverterData.setImageDataWidth(imageConverterData.getImageData().width); + imageConverterData.setImageDataHeight(imageConverterData.getImageData().height); + imageConverterData.clearTargetFileBytes(); + + Converter converter; + + if (StringUtility.isEmpty(imageConverterParameters.getConverterId())) { + messageManager.sendMessage(ConverterCommonParameters.MessageIds.CONVERTER_ID, IStatus.ERROR, + "No converter selected"); + return false; + } + converter = imageConverterData.getConverter(); + if (converter == null) { + messageManager.sendMessage(ConverterCommonParameters.MessageIds.CONVERTER_ID, IStatus.ERROR, + "Converter '{0}' is not registered", String.valueOf(imageConverterParameters.getConverterId())); + return false; + } + + if (messageManager.containsError()) { + return false; + } + + // Default the script if none is specified. + if (StringUtility.isEmpty(imageConverterParameters.getScript())) { + try { + imageConverterParameters.setScript(ConverterScript.getScript(converter.getClass())); + } catch (CoreException ex) { + messageManager.sendMessage(ImageConverterParameters.MessageIds.SCRIPT, ex); + return false; + } + } + + try { + // Apply default to conversion parameters. + if (imageConverterParameters.isUseDefaultScript() + || StringUtility.isEmpty(imageConverterParameters.getScript())) { + String script = ConverterScript.getScript(converter.getClass()); + imageConverterParameters.setScript(script); + } + + ConverterScript.convertToFileData(converter, imageConverterData); + } catch (CoreException ex) { + messageManager.sendMessage(ConverterCommonParameters.MessageIds.CONVERTER_ID, ex); + return false; + } catch (RuntimeException ex) { + String message = ex.getMessage(); + if (message == null) { + message = ex.getClass().getName(); + } + messageManager.sendMessage(ImageConverterParameters.MessageIds.SCRIPT, IStatus.ERROR, message); + return false; + } + + return true; + } + + private boolean convertFilesToImage(ConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + if (!data.isValidFile()) { + return false; + } + + FilesConverterData filesConverterData; + filesConverterData = data.getFilesConverterData(); + + filesConverterData.setImageDataValid(false); + filesConverterData.setImageDataWidth(0); + filesConverterData.setImageDataHeight(0); + filesConverterData.setImageData(null); + + FilesConverterParameters filesConverterParameters; + filesConverterParameters = filesConverterData.getParameters(); + + if (filesConverterParameters.getSpacingWidth() < 0) { + messageManager.sendMessage(FilesConverterParameters.MessageIds.SPACING_WIDTH, IStatus.ERROR, + "Spacing width must not be negative. Current value is {0}", + String.valueOf(filesConverterParameters.getSpacingWidth())); + } + + if (filesConverterParameters.getColumns() <= 0) { + messageManager.sendMessage(FilesConverterParameters.MessageIds.COLUMNS, IStatus.ERROR, + "Columns count must be positive. Current value is {0}", + String.valueOf(filesConverterParameters.getColumns())); + } + if (filesConverterParameters.getRows() <= 0) { + messageManager.sendMessage(FilesConverterParameters.MessageIds.ROWS, IStatus.ERROR, + "Rows count must be positive. Current value is {0}", + String.valueOf(filesConverterParameters.getRows())); + } + + Converter converter; + + if (StringUtility.isEmpty(filesConverterParameters.getConverterId())) { + messageManager.sendMessage(ConverterCommonParameters.MessageIds.CONVERTER_ID, IStatus.ERROR, + "No converter selected"); + return false; + } + converter = filesConverterData.getConverter(); + if (converter == null) { + messageManager.sendMessage(ConverterCommonParameters.MessageIds.CONVERTER_ID, IStatus.ERROR, + "Converter '{0}' is not registered", String.valueOf(filesConverterParameters.getConverterId())); + return false; + } + + if (messageManager.containsError()) { + return false; + } + converter.convertToImageDataSize(filesConverterData); + if (filesConverterData.getImageDataWidth() <= 0) { + messageManager.sendMessage(FilesConverterParameters.MessageIds.COLUMNS, IStatus.ERROR, + "Resulting image data with '{0}' is not positive", + String.valueOf(filesConverterData.getImageDataWidth())); + } + if (filesConverterData.getImageDataHeight() <= 0) { + messageManager.sendMessage(FilesConverterParameters.MessageIds.ROWS, IStatus.ERROR, + "Resulting image data height '{0}' is not positive", + String.valueOf(filesConverterData.getImageDataWidth())); + } + + int MAX_PIXELS = 1000 * 1000; + int pixels = filesConverterData.getImageDataWidth() * filesConverterData.getImageDataHeight(); + if (pixels > MAX_PIXELS) { + messageManager.sendMessage(FilesConverterParameters.MessageIds.ROWS, IStatus.ERROR, + "Resulting image would have {0} pixels and exceed the memory limit of {1} pixels", + String.valueOf(pixels), String.valueOf(MAX_PIXELS)); + } + + if (messageManager.containsError()) { + return false; + } + + // Create index or direct palette and image data. + PaletteData paletteData; + ImageData imageData; + int paletteSize; + paletteSize = filesConverterData.getConverter().getDefinition().getTargetImagePaletteSize(); + if (paletteSize > 0) { + // Create 8 bit index palette. + RGB[] paletteColors = new RGB[paletteSize]; + RGB[] currentPaletteColors = filesConverterParameters.getPaletteRGBs(); + for (int i = 0; i < paletteColors.length; i++) { + if (i < currentPaletteColors.length) { + paletteColors[i] = currentPaletteColors[i]; + } else { + paletteColors[i] = new RGB(0, 0, 0); + } + } + filesConverterParameters.setPaletteRGBs(paletteColors); + + RGB[] actualPaletteColors = new RGB[paletteColors.length + 1]; + System.arraycopy(paletteColors, 0, actualPaletteColors, 0, paletteColors.length); + // The color at index actualPaletteColors.length is used as spacing + // color in order to keep the original palette index order + int spacingColorIndex = paletteColors.length; + actualPaletteColors[spacingColorIndex] = filesConverterParameters.getSpacingColor(); + paletteData = new PaletteData(actualPaletteColors); + imageData = new ImageData(filesConverterData.getImageDataWidth(), filesConverterData.getImageDataHeight(), + 8, paletteData); + for (int y = 0; y < filesConverterData.getImageDataHeight(); y++) { + for (int x = 0; x < filesConverterData.getImageDataWidth(); x++) { + imageData.setPixel(x, y, spacingColorIndex); + } + } + } else { + // Create 24 bit direct palette. + paletteData = new PaletteData(0xFF0000, 0xFF00, 0xFF); + imageData = new ImageData(filesConverterData.getImageDataWidth(), filesConverterData.getImageDataHeight(), + 24, paletteData); + } + filesConverterData.setImageData(imageData); + boolean conversionResult; + try { + conversionResult = converter.convertToImageData(filesConverterData); + } catch (RuntimeException ex) { + GraphicsPlugin.getInstance().logError("Runtime exception during convertFilesToImage()", null, ex); + conversionResult = false; + } + filesConverterData.setImageDataValid(conversionResult); + + ImageColorHistogram imageColorHistogram = new ImageColorHistogram(); + imageColorHistogram.analyze(imageData); + filesConverterData.setImageColorHistogram(imageColorHistogram); + return conversionResult; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterDefinition.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterDefinition.java new file mode 100644 index 00000000..19aab325 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterDefinition.java @@ -0,0 +1,285 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.StringTokenizer; + +import com.wudsn.ide.gfx.model.Aspect; + +/** + * Definition of a converter. The definition contains all static meta + * information about the converter. It is normally defined via an extension. + * + * + * For launching application under MacOS see + * https://bugs.eclipse.org/bugs/show_bug.cgi?id=82155 and + * http://www.coderanch.com/t/111494/Mac-OS/launching-Safari-from-Java-App. + * + * @author Peter Dell + */ +public final class ConverterDefinition implements + Comparable { + + // Id + private String id; + private String name; + private List sourceFileExtensions; + private int targetImagePaletteSize; + private Aspect targetImageDisplayAspect; + + private List sourceFileDefinitions; + private List targetFileDefinitions; + + /** + * Creates an instance. Called by {@link ConverterRegistry} only. + */ + ConverterDefinition() { + sourceFileExtensions = new ArrayList(1); + sourceFileDefinitions = new ArrayList(); + targetFileDefinitions = new ArrayList(); + + } + + /** + * Sets the id of the converter. Called by {@link ConverterRegistry} only. + * + * @param id + * The id of the converter, not empty and not null. + */ + final void setId(String id) { + if (id == null) { + throw new IllegalArgumentException( + "Parameter 'id' must not be null."); + } + this.id = id; + } + + /** + * Gets the id of the converter. + * + * @return The id of the converter, not empty and not null. + */ + public final String getId() { + if (id == null) { + throw new IllegalStateException("Field 'id' must not be null."); + } + return id; + } + + /** + * Sets the name of the converter. Called by {@link ConverterRegistry} only. + * + * @param name + * The name of the converter, not empty and not null + * . + */ + final void setName(String name) { + if (name == null) { + throw new IllegalArgumentException( + "Parameter 'name' must not be null."); + } + this.name = name; + } + + /** + * Gets the name of the converter. + * + * @return The name of the converter, not empty and not null. + */ + public final String getName() { + if (name == null) { + throw new IllegalStateException("Field 'name' must not be null."); + } + return name; + } + + /** + * Sets the supported source file extensions the converter. Called by + * {@link ConverterRegistry} only. + * + * @param sourceFileExtensions + * The comma separated list of source file extensions in lower + * case characters, may be empty or null. + * + * @since 1.6.0 + */ + final void setSourceFileExtensions(String sourceFileExtensions) { + if (sourceFileExtensions == null) { + sourceFileExtensions = ""; + } + StringTokenizer st = new StringTokenizer(sourceFileExtensions, ","); + while (st.hasMoreTokens()) { + this.sourceFileExtensions.add(st.nextToken().trim()); + } + } + + /** + * Determines if a given file extension is supported. + * + * @param fileExtension + * The file extension in lower case letters, may be empty, not + * null. + * @return true if the file extension is supported, + * false otherwise. + * + * @since V1.6.0 + */ + public final boolean isSourceFileExtensionSupported(String fileExtension) { + if (fileExtension == null) { + throw new IllegalArgumentException( + "Parameter 'fileExtension' must not be null."); + } + + return sourceFileExtensions.contains(fileExtension); + } + + /** + * Sets the palette size of the converter. Called by + * {@link ConverterRegistry} only. + * + * @param targetImagePaletteSize + * The palette size of the converter, a positive number if a + * palette is used, 0 for a direct palette. + */ + final void setTargetImagePaletteSize(int targetImagePaletteSize) { + if (targetImagePaletteSize < 0) { + throw new IllegalArgumentException( + "Parameter 'targetImagePaletteSize' must not be negative. Specified value is " + + targetImagePaletteSize + "."); + } + this.targetImagePaletteSize = targetImagePaletteSize; + } + + /** + * Gets the palette size of the target image. + * + * @return The palette size of the target image, a positive number if a + * palette is used, 0 for direct palette. + */ + public final int getTargetImagePaletteSize() { + if (targetImagePaletteSize < 0) { + throw new IllegalStateException( + "Field 'targetImagePaletteSize' must not be negative. Specified value is " + + targetImagePaletteSize + "."); + } + return targetImagePaletteSize; + } + + /** + * Sets the zoom factor of the target image. + * + * @param targetImageDisplayAspect + * The target image zoom factor, not null. + */ + final void setTargetImageDisplayAspect(Aspect targetImageDisplayAspect) { + if (targetImageDisplayAspect == null) { + throw new IllegalArgumentException( + "Parameter 'targetImageDisplayAspect' must not be null."); + } + if (!targetImageDisplayAspect.isValid()) { + throw new IllegalArgumentException( + "Parameter 'targetImageDisplayAspect' must not be invalid."); + } + this.targetImageDisplayAspect = targetImageDisplayAspect; + } + + /** + * Gets the zoom factor of the target image. + * + * @return The zoom factor of the target image. + */ + public final Aspect getTargetImageDisplayAspect() { + if (targetImageDisplayAspect == null) { + throw new IllegalStateException( + "Field 'targetImageDisplayAspect' must not be empty."); + } + return targetImageDisplayAspect; + } + + /** + * Adds a source file definition. Called by {@link ConverterRegistry} only. + * + * @param sourceFileDefinition + * The source file definition, not null. + */ + final void addSourceFileDefinition( + ConverterSourceFileDefinition sourceFileDefinition) { + if (sourceFileDefinition == null) { + throw new IllegalArgumentException( + "Parameter 'sourceFileDefinition' must not be null."); + } + sourceFileDefinitions.add(sourceFileDefinition); + } + + /** + * Gets the unmodifiable list of source file definitions. + * + * @return The unmodifiable list of source file definitions, may be empty, + * not null. + */ + public final List getSourceFileDefinitions() { + return Collections.unmodifiableList(sourceFileDefinitions); + } + + /** + * Adds a target file definition. Called by {@link ConverterRegistry} only. + * + * @param targetFileDefinition + * The target file definition, not null. + */ + final void addTargetFileDefinition( + ConverterTargetFileDefinition targetFileDefinition) { + if (targetFileDefinition == null) { + throw new IllegalArgumentException( + "Parameter 'targetFileDefinition' must not be null."); + } + targetFileDefinitions.add(targetFileDefinition); + } + + /** + * Gets the unmodifiable list of target file definitions. + * + * @return The unmodifiable list of target file definitions, may be empty, + * not null. + */ + public final List getTargetFileDefinitions() { + + return Collections.unmodifiableList(targetFileDefinitions); + } + + @Override + public final int compareTo(ConverterDefinition o) { + if (o == null) { + throw new IllegalArgumentException( + "Parameter 'o' must not be null."); + } + if (name == null || o.name == null) { + if (name == null) { + throw new IllegalStateException( + "Field 'name' must not be null for this or for argument."); + } + } + return name.compareTo(o.name); + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterParameters.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterParameters.java new file mode 100644 index 00000000..61ecf8ff --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterParameters.java @@ -0,0 +1,270 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; + +import com.wudsn.ide.base.Texts; +import com.wudsn.ide.base.common.FileUtility; +import com.wudsn.ide.base.common.SequencedProperties; +import com.wudsn.ide.base.common.TextUtility; +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.model.ConverterDirection; +import com.wudsn.ide.gfx.model.GraphicsPropertiesSerializer; + +public final class ConverterParameters { + + private static final class Attributes { + + /** + * Creation is private. + */ + private Attributes() { + } + + public static final String CONVERTER_DIRECTION = "converterDirection"; + public static final String FILES_CONVERTER_PARAMETERS = "filesConverterParameters"; + public static final String IMAGE_CONVERTER_PARAMETERS = "imageConverterParameters"; + + } + + private static final class Defaults { + + /** + * Creation is private. + */ + private Defaults() { + } + + public static final ConverterDirection CONVERTER_DIRECTION = ConverterDirection.FILES_TO_IMAGE; + } + + private ConverterDirection converterDirection; + private FilesConverterParameters filesConverterParameters; + private ImageConverterParameters imageConverterParameters; + + public ConverterParameters() { + + filesConverterParameters = new FilesConverterParameters(); + imageConverterParameters = new ImageConverterParameters(); + setDefaults(); + } + + public void setDefaults() { + + converterDirection = Defaults.CONVERTER_DIRECTION; + filesConverterParameters.setDefaults(); + imageConverterParameters.setDefaults(); + } + + public void setConverterDirection(ConverterDirection value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.converterDirection = value; + } + + public ConverterDirection getConverterDirection() { + return converterDirection; + } + + public ConverterCommonParameters getConverterCommonParameters() { + switch (getConverterDirection()) { + case FILES_TO_IMAGE: + return filesConverterParameters; + case IMAGE_TO_FILES: + return imageConverterParameters; + default: + throw new IllegalStateException("Unknown converter direction " + + getConverterDirection() + "."); + } + } + + public FilesConverterParameters getFilesConverterParameters() { + return filesConverterParameters; + } + + public ImageConverterParameters getImageConverterParameters() { + return imageConverterParameters; + } + + public void copyTo(ConverterParameters target) { + if (target == null) { + throw new IllegalArgumentException( + "Parameter 'target' must not be null."); + } + target.setConverterDirection(converterDirection); + filesConverterParameters.copyTo(target.getFilesConverterParameters()); + imageConverterParameters.copyTo(target.getImageConverterParameters()); + } + + public boolean equals(ConverterParameters target) { + if (target == null) { + throw new IllegalArgumentException( + "Parameter 'target' must not be null."); + } + boolean result; + result = target.getConverterDirection().equals(converterDirection); + result = result + && target.getFilesConverterParameters().equals( + filesConverterParameters); + result = result + && target.getImageConverterParameters().equals( + imageConverterParameters); + return result; + } + + public InputStream getContents(String filePath) throws CoreException { + if (filePath == null) { + throw new IllegalArgumentException( + "Parameter 'filePath' must not be null."); + } + + GraphicsPropertiesSerializer serializer; + Properties properties; + + serializer = new GraphicsPropertiesSerializer(); + serialize(serializer); + properties = serializer.getProperties(); + ByteArrayOutputStream propertiesStream = new ByteArrayOutputStream(); + + try { + // ByteArrayOutputStream propertiesStream = new + // ByteArrayOutputStream(); + properties + .store(propertiesStream, "WUDSN IDE Converter Parameters"); + propertiesStream.close(); + + // Iterator iterator = ImageIO + // .getImageWritersBySuffix("png"); + // + // if (!iterator.hasNext()) { + // throw new RuntimeException("No image writer for suffix 'png'"); + // } + // + // ImageWriter imagewriter = iterator.next(); + // imagewriter.setOutput(ImageIO + // .createImageOutputStream(resourceStream)); + // + // // Create & populate metadata + // PNGMetadata metadata = new PNGMetadata(); + // metadata.tEXt_keyword.add("WUDSN"); + // metadata.tEXt_text.add(new + // String(propertiesStream.toByteArray()));// + // + // // Render the PNG to memory + // BufferedImage bufferedImage = new BufferedImage(imageData.width, + // imageData.height, BufferedImage.TYPE_INT_RGB); + // for (int y = 0; y < imageData.height; y++) { + // for (int x = 0; x < imageData.width; x++) { + // int pixel; + // RGB rgb; + // + // pixel = imageData.getPixel(x, y); + // rgb = imageData.palette.getRGB(pixel); + // bufferedImage.setRGB(x, y, rgb.red << 16 | rgb.green << 8 + // | rgb.blue); + // } + // } + // + // // Build the image container, set the metadata and write the + // // container. + // IIOImage iioImage = new IIOImage(bufferedImage, null, null); + // iioImage.setMetadata(metadata); // Attach the metadata + // imagewriter.write(null, iioImage, null); + + } catch (IOException ex) { + // ERROR: Cannot write content of file '{0}'. + throw new CoreException(new Status(IStatus.ERROR, GraphicsPlugin.ID, + TextUtility.format(Texts.MESSAGE_E212, filePath), ex)); + + } + + return new ByteArrayInputStream(propertiesStream.toByteArray()); + } + + private void serialize(GraphicsPropertiesSerializer serializer) { + if (serializer == null) { + throw new IllegalArgumentException( + "Parameter 'serializer' must not be null."); + } + serializer + .writeEnum(Attributes.CONVERTER_DIRECTION, converterDirection); + filesConverterParameters.serialize(serializer, + Attributes.FILES_CONVERTER_PARAMETERS); + imageConverterParameters.serialize(serializer, + Attributes.IMAGE_CONVERTER_PARAMETERS); + } + + public void read(IFile file) throws CoreException { + if (file == null) { + throw new IllegalArgumentException( + "Parameter 'file' must not be null."); + } + + byte[] content; + content = FileUtility.readBytes(file, FileUtility.MAX_SIZE_UNLIMITED, + false); + SequencedProperties properties = new SequencedProperties(); + + try { + properties.load(new ByteArrayInputStream(content)); + } catch (IOException ex) { + // ERROR: Cannot read content of file '{0}'. + throw new CoreException(new Status(IStatus.ERROR, GraphicsPlugin.ID, + TextUtility.format(Texts.MESSAGE_E206, file.getFullPath() + .toOSString()), ex)); + + } + GraphicsPropertiesSerializer serializer; + + serializer = new GraphicsPropertiesSerializer(); + serializer.getProperties().putAll(properties); + deserialize(serializer); + + GraphicsPlugin.getInstance().log("ConverterParameters.read({0}):{1}", + new Object[] { file, serializer.getProperties() }); + + } + + private void deserialize(GraphicsPropertiesSerializer serializer) { + if (serializer == null) { + throw new IllegalArgumentException( + "Parameter 'serializer' must not be null."); + } + converterDirection = serializer.readEnum( + Attributes.CONVERTER_DIRECTION, Defaults.CONVERTER_DIRECTION, + ConverterDirection.class); + filesConverterParameters.deserialize(serializer, + Attributes.FILES_CONVERTER_PARAMETERS); + imageConverterParameters.deserialize(serializer, + Attributes.IMAGE_CONVERTER_PARAMETERS); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterRegistry.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterRegistry.java new file mode 100644 index 00000000..b34260a6 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterRegistry.java @@ -0,0 +1,305 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IExtension; +import org.eclipse.core.runtime.IExtensionPoint; +import org.eclipse.core.runtime.IExtensionRegistry; +import org.eclipse.core.runtime.Platform; + +import com.wudsn.ide.gfx.model.AspectUtility; +import com.wudsn.ide.gfx.model.ConverterDirection; + +/** + * Registry for converters, based on the extension points + * {@value ConverterRegistry#CONVERTERS}. + * + * @author Peter Dell + * + */ +public final class ConverterRegistry { + + /** + * The id of the extension point which provides the converters. + */ + private static final String CONVERTERS = "com.wudsn.ide.gfx.converters"; + + /** + * Maximum number of source files. + */ + public static final int MAX_SOURCE_FILES = 10; + + /** + * Maximum number of target files. + */ + public static final int MAX_TARGET_FILES = 10; + + /** + * The registered converter definitions. + */ + private List filesToImageConverterDefinitionList; + private List imageToFilesConverterDefinitionList; + + /** + * The cached map of converter instances. + */ + private Map converterMap; + + /** + * Creation is public. + */ + public ConverterRegistry() { + filesToImageConverterDefinitionList = Collections.emptyList(); + imageToFilesConverterDefinitionList = Collections.emptyList(); + converterMap = Collections.emptyMap(); + + } + + /** + * Initializes the list of available converters. + */ + public void init() { + + filesToImageConverterDefinitionList = new ArrayList(); + imageToFilesConverterDefinitionList = new ArrayList(); + converterMap = new TreeMap(); + + IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry(); + IExtensionPoint extensionPoint = extensionRegistry + .getExtensionPoint(CONVERTERS); + if (extensionPoint == null) { + throw new IllegalStateException("Extension point '" + CONVERTERS + + "' is not defined."); + } + + IExtension[] extensions = extensionPoint.getExtensions(); + + for (IExtension extension : extensions) { + IConfigurationElement[] converterGroupElements = extension + .getConfigurationElements(); + for (IConfigurationElement converterGroupElement : converterGroupElements) { + IConfigurationElement[] converterElements = converterGroupElement + .getChildren("converter"); + for (IConfigurationElement converterElement : converterElements) { + + ConverterDefinition converterDefinition; + converterDefinition = new ConverterDefinition(); + converterDefinition.setId(converterElement + .getAttribute("id")); + converterDefinition.setName(converterElement + .getAttribute("name")); + converterDefinition + .setSourceFileExtensions(converterElement + .getAttribute("sourceFileExtensions")); + converterDefinition.setTargetImagePaletteSize(Integer + .parseInt(converterElement + .getAttribute("targetImagePaletteSize"))); + converterDefinition + .setTargetImageDisplayAspect(AspectUtility.fromString(converterElement + .getAttribute("targetImageDisplayAspect"))); + IConfigurationElement[] sourceFileElements = converterElement + .getChildren("sourceFile"); + int i = 0; + for (IConfigurationElement sourceFileElement : sourceFileElements) { + ConverterSourceFileDefinition sourceFileDefinition; + sourceFileDefinition = new ConverterSourceFileDefinition(); + sourceFileDefinition.setSourceFileId(i); + sourceFileDefinition.setLabel(sourceFileElement + .getAttribute("label")); + converterDefinition + .addSourceFileDefinition(sourceFileDefinition); + i++; + } + + IConfigurationElement[] targetFileElements = converterElement + .getChildren("targetFile"); + i = 0; + for (IConfigurationElement targetFileElement : targetFileElements) { + ConverterTargetFileDefinition targetFileDefinition; + targetFileDefinition = new ConverterTargetFileDefinition(); + targetFileDefinition.setSourceFileId(i); + targetFileDefinition.setLabel(targetFileElement + .getAttribute("label")); + converterDefinition + .addTargetFileDefinition(targetFileDefinition); + i++; + } + + // If there is a source file, it is a files to image + // converter. + if (!converterDefinition.getSourceFileDefinitions() + .isEmpty()) { + filesToImageConverterDefinitionList + .add(converterDefinition); + + } + // If there is a target file, it is a files to image + // converter. + if (!converterDefinition.getTargetFileDefinitions() + .isEmpty()) { + imageToFilesConverterDefinitionList + .add(converterDefinition); + + } + addConverter(converterElement, converterDefinition); + } + } + } + + // Create a sorted, unmodifiable copy. + filesToImageConverterDefinitionList = new ArrayList( + filesToImageConverterDefinitionList); + Collections.sort(filesToImageConverterDefinitionList); + filesToImageConverterDefinitionList = Collections + .unmodifiableList(filesToImageConverterDefinitionList); + + // Create a sorted, unmodifiable copy. + imageToFilesConverterDefinitionList = new ArrayList( + imageToFilesConverterDefinitionList); + Collections.sort(imageToFilesConverterDefinitionList); + imageToFilesConverterDefinitionList = Collections + .unmodifiableList(imageToFilesConverterDefinitionList); + + // Create an unmodifiable copy. + converterMap = Collections.unmodifiableMap(converterMap); + } + + /** + * Adds a new converter. + * + * @param configurationElement + * The configuration element used as class instance factory, not + * null. + * + * @param converterDefinition + * The converter definition, not null. + */ + private void addConverter(IConfigurationElement configurationElement, + ConverterDefinition converterDefinition) { + if (configurationElement == null) { + throw new IllegalArgumentException( + "Parameter 'configurationElement' must not be null."); + } + if (converterDefinition == null) { + throw new IllegalArgumentException( + "Parameter 'converterDefinition' must not be null."); + } + + String id = converterDefinition.getId(); + Converter converter; + try { + converter = (Converter) configurationElement + .createExecutableExtension("id"); + } catch (CoreException ex) { + throw new RuntimeException("Cannot instantiate converter '" + id + + "'.", ex); + } + converter.setDefinition(converterDefinition); + converter = converterMap.put(id, converter); + if (converter != null) { + throw new RuntimeException("Converter id '" + id + + "' is already registered to class '" + + converter.getClass().getName() + "'."); + } + + } + + /** + * Gets the unmodifiable list of converter definitions, sorted by their id. + * + * @param converterDirection + * The converter direction, not null. + * + * @return The unmodifiable list of converter definitions, sorted by their + * id, not empty and not null. + */ + public List getDefinitions( + ConverterDirection converterDirection) { + if (converterDirection == null) { + throw new IllegalArgumentException( + "Parameter 'converterDirection' must not be null."); + } + switch (converterDirection) { + case FILES_TO_IMAGE: + return filesToImageConverterDefinitionList; + case IMAGE_TO_FILES: + return imageToFilesConverterDefinitionList; + default: + throw new IllegalArgumentException("Unknown converter directtion " + + converterDirection + "."); + } + } + + /** + * Gets the converter definition for an id. + * + * @param converterId + * The converter id, may be empty, not null. + * @param converterDirection + * The direction of the converter, not null. + * + * @return The converter definition or null. + */ + public ConverterDefinition getDefinition(String converterId, + ConverterDirection converterDirection) { + if (converterId == null) { + throw new IllegalArgumentException( + "Parameter 'converterId' must not be null."); + } + List converterDefinitionList = getDefinitions(converterDirection); + for (ConverterDefinition converterDefinition : converterDefinitionList) { + if (converterDefinition.getId().equals(converterId)) { + return converterDefinition; + } + } + return null; + } + + /** + * Gets the converter for a given id. Instances of {@link Converter} are + * stateless singletons within the plugin. + * + * @param converterId + * The converter id, not null. + * + * @return The converter or null. + */ + public Converter getConverter(String converterId) { + if (converterId == null) { + throw new IllegalArgumentException( + "Parameter 'converterId' must not be null."); + } + Converter result; + synchronized (converterMap) { + + result = converterMap.get(converterId); + } + + return result; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterScript.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterScript.java new file mode 100644 index 00000000..9b0855d1 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterScript.java @@ -0,0 +1,162 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.io.InputStream; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.mozilla.javascript.Context; +import org.mozilla.javascript.ContextFactory; +import org.mozilla.javascript.Function; +import org.mozilla.javascript.RhinoException; +import org.mozilla.javascript.Scriptable; + +import com.wudsn.ide.base.common.FileUtility; +import com.wudsn.ide.gfx.GraphicsPlugin; + +/** + * Converter script utility class. + * + * @author Peter Dell + * + * @since 1.6.0 + */ +public final class ConverterScript { + + public static void convertToFileData(Converter converter, ImageConverterData data) throws CoreException { + + // Collect the arguments into a single string. + String script = data.getParameters().getScript(); + ConverterScriptData converterScriptData = data.getConverterScriptData(); + ContextFactory contextFactory = ContextFactory.getGlobal(); + Context context = null; + Scriptable scope = null; + + try { + if (!script.equals(converterScriptData.getCompiledScript())) { + + if (converterScriptData.getCompiledContext() != null && Context.getCurrentContext() != null) { + Context.exit(); + } + // Creates and enters a new Context. The Context stores + // information + // about the execution environment of a script. + context = contextFactory.enterContext(); + scope = context.initStandardObjects(); + context.setOptimizationLevel(9); + context.evaluateString(scope, script, "Line ", 1, null); + // Initialize the standard objects (Object, Function, etc.) + // This must be done before scripts can be executed. Returns + // a scope object that we use in later calls. + converterScriptData.setCompiledScript(script); + converterScriptData.setCompiledContext(context); + converterScriptData.setCompiledScope(scope); + } else { + // Restore the previous context. + context = converterScriptData.getCompiledContext(); + contextFactory.enterContext(context); + scope = converterScriptData.getCompiledScope(); + } + + // Set global variables. + ConverterConsole converterConsole = GraphicsPlugin.getInstance().getConverterConsole(); + scope.put("Console", scope, Context.toObject(converterConsole, scope)); + + // Call function + converterScriptData.setErrorLineNumber(-1); + String functionName = "convertToFileData"; + Object functionObject = scope.get(functionName, scope); + if (functionObject == null) { + throw new CoreException(new Status(IStatus.ERROR, GraphicsPlugin.ID, "'" + functionName + + "' is undefined.")); + } + if (!(functionObject instanceof Function)) { + throw new CoreException(new Status(IStatus.ERROR, GraphicsPlugin.ID, "'" + functionName + + "' is not a function.")); + } + + Object functionArgs[] = { Context.toObject(data, scope) }; + Function function = (Function) functionObject; + function.call(context, scope, scope, functionArgs); + + } catch (RhinoException ex) { + converterScriptData.setErrorLineNumber(ex.lineNumber()); + String message = getMessageString(ex.details()); + String lineSource = getMessageString(ex.lineSource()); + throw new CoreException(new Status(IStatus.ERROR, GraphicsPlugin.ID, "Error in script line " + + ex.lineNumber() + ": " + message + " " + lineSource, ex)); + + } finally { + + // Exit from the context. Remove the context association to the + // current thread. + if (Context.getCurrentContext() != null) { + Context.exit(); + } + } + } + + /** + * Converts a string to message format (not null, no tabs). + * + * @param string + * The string, or null. + * @return The message string, may be empty, not null. + */ + private static String getMessageString(String string) { + String result; + if (string != null) { + result = string.replace('\t', ' '); + } else { + result = ""; + } + return result; + } + + /** + * Gets the script associated with a compiler class. + * + * @param converterClass + * The of the converter, not null. + * @return The script for the converter, may be empty, not null + * . + * @throws CoreException + * In case there is an error while reading an existing script. + */ + public static String getScript(Class converterClass) throws CoreException { + if (converterClass == null) { + throw new IllegalArgumentException("Parameter 'converterClass' must not be null."); + } + String result; + + String converterScriptFileName = "/" + converterClass.getName().replace('.', '/') + ".js"; + InputStream inputStream = converterClass.getResourceAsStream(converterScriptFileName); + + if (inputStream != null) { + result = FileUtility.readString(converterScriptFileName, inputStream, FileUtility.MAX_SIZE_UNLIMITED); + } else { + result = ""; + } + + return result; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterScriptData.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterScriptData.java new file mode 100644 index 00000000..13e425c6 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterScriptData.java @@ -0,0 +1,121 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import org.mozilla.javascript.Context; +import org.mozilla.javascript.Scriptable; + +/** + * Container for a compiled converter scripts and its context. + * + * @author Peter Dell + * @since 1.6.6 + */ +public final class ConverterScriptData { + private String compiledScript; + private Context compiledContext; + private Scriptable compiledScope; + private int errorLineNumber; + + /** + * Gets the compiled script for which the compiled context and scope are + * cached. + * + * @return The compiled script, maybe be empty, not null. + */ + public String getCompiledScript() { + return compiledScript; + } + + /** + * Sets the compiled script for which the compiled context and scope are + * cached. + * + * @param compiledScript + * The compiled script, may be empty, not null. + */ + public void setCompiledScript(String compiledScript) { + if (compiledScript == null) { + throw new IllegalArgumentException("Parameter 'compiledScript' must not be null."); + } + this.compiledScript = compiledScript; + } + + /** + * Gets the compiled context which was created for the compiled script. + * + * @return The compiled context or null. + */ + public Context getCompiledContext() { + return compiledContext; + } + + /** + * Sets the compiled context which was created for the compiled script. + * + * @param compiledContext + * The compiled context or null. + */ + public void setCompiledContext(Context compiledContext) { + this.compiledContext = compiledContext; + + } + + /** + * Gets the compiled scope which was created for the compiled script. + * + * @return The compiled context or null. + */ + public Scriptable getCompiledScope() { + return compiledScope; + } + + /** + * Sets the compiled scope which was created for the compiled script. + * + * @param compiledScope + * The compiled scope or null. + */ + public void setCompiledScope(Scriptable compiledScope) { + this.compiledScope = compiledScope; + } + + /** + * Set the line number of the first error that occurred in the script. + * + * @param errorLineNumber + * The line number of the first error that occurred in the + * script, a positive integer or -1 if there is + * no error. + */ + public void setErrorLineNumber(int errorLineNumber) { + this.errorLineNumber = errorLineNumber; + } + + /** + * Gets the line number of the first error that occurred in the script. + * + * @return The line number of the first error that occurred in the script,a + * positive integer or -1 if there is no error. + */ + public int geErrorLineNumber() { + return errorLineNumber; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterSourceFileDefinition.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterSourceFileDefinition.java new file mode 100644 index 00000000..740df4b0 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterSourceFileDefinition.java @@ -0,0 +1,45 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ +package com.wudsn.ide.gfx.converter; + +public final class ConverterSourceFileDefinition { + private int sourceFileId; + private String label; + + ConverterSourceFileDefinition() { + + } + + public int getSourceFileId() { + return sourceFileId; + } + + final void setSourceFileId(int sourceFileId) { + this.sourceFileId = sourceFileId; + } + + public String getLabel() { + return label; + } + + final void setLabel(String label) { + this.label = label; + } + +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterTargetFileDefinition.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterTargetFileDefinition.java new file mode 100644 index 00000000..9fd7d56d --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ConverterTargetFileDefinition.java @@ -0,0 +1,46 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +public final class ConverterTargetFileDefinition { + private int sourceFileId; + private String label; + + ConverterTargetFileDefinition() { + + } + + public int getSourceFileId() { + return sourceFileId; + } + + final void setSourceFileId(int sourceFileId) { + this.sourceFileId = sourceFileId; + } + + public String getLabel() { + return label; + } + + final void setLabel(String label) { + this.label = label; + } + +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterData.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterData.java new file mode 100644 index 00000000..2583cbbf --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterData.java @@ -0,0 +1,212 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.List; + +import com.wudsn.ide.base.common.HexUtility; +import com.wudsn.ide.base.common.NumberUtility; +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.model.ConverterDirection; +import com.wudsn.ide.gfx.model.ConverterMode; + +public final class FilesConverterData extends ConverterCommonData { + + private FilesConverterParameters parameters; + + private List sourceFilesBytes; + + private boolean imageDataValid; + + FilesConverterData(ConverterData converterData) { + super(converterData); + + this.parameters = converterData.getParameters() + .getFilesConverterParameters(); + sourceFilesBytes = new ArrayList(0); + } + + public FilesConverterParameters getParameters() { + return parameters; + } + + /** + * Gets the converter for a converter id specified in the parameters. + * Instances of {@link Converter} are stateless singletons within the + * plugin. + * + * @return The converter or null. + */ + public Converter getConverter() { + ConverterRegistry converterRegistry; + Converter converter; + converterRegistry = GraphicsPlugin.getInstance().getConverterRegistry(); + converter = converterRegistry.getConverter(parameters.getConverterId()); + return converter; + } + + public int getTargetImagePaletteSize() { + ConverterRegistry converterRegistry; + ConverterDefinition converterDefinition; + int result; + + converterRegistry = GraphicsPlugin.getInstance().getConverterRegistry(); + converterDefinition = converterRegistry.getDefinition( + parameters.getConverterId(), ConverterDirection.FILES_TO_IMAGE); + if (converterDefinition != null) { + result = converterDefinition.getTargetImagePaletteSize(); + } else { + result = 0; + } + return result; + } + + @Override + public boolean isCreateConversionEnabled() { + return converterData.isValid() + && converterData.getConverterMode() == ConverterMode.RAW_FILE; + } + + @Override + public boolean isValid() { + return converterData.isValidFile(); + } + + @Override + public boolean isRefreshEnabled() { + return converterData.isValidFile(); + } + + @Override + public void clear() { + super.clear(); + sourceFilesBytes.clear(); + } + + public void setSourceFileBytes(int sourceFileId, byte[] bytes) { + if (sourceFileId < 0) { + throw new IllegalArgumentException( + "Parameter 'sourceFileId' must not be negative. Specified value is " + + sourceFileId + "."); + } + while (sourceFilesBytes.size() <= sourceFileId) { + sourceFilesBytes.add(null); + } + sourceFilesBytes.set(sourceFileId, bytes); + } + + public byte[] getSourceFileBytes(int sourceFileId) { + if (sourceFileId < 0) { + throw new IllegalArgumentException( + "Parameter 'sourceFileId' must not be negative. Specified value is " + + sourceFileId + "."); + } + byte[] bytes; + if (sourceFileId < sourceFilesBytes.size()) { + bytes = sourceFilesBytes.get(sourceFileId); + } else { + bytes = null; + } + return bytes; + } + + public void setImageDataValid(boolean imageDataValid) { + this.imageDataValid = imageDataValid; + } + + public boolean isImageDataValid() { + return imageDataValid; + } + + public boolean isSaveImageEnabled() { + return converterData.isValidFile()&& isImageDataValid(); + } + + /** + * Gets a byte from the source file, taking it offset from the parameter + * into account plus the relative offset of the conversion routine. + * + * @param sourceFileId + * The id of the source file, a non-negative integer. + * @param offset + * The relative object of the conversion routine, a non-negative + * integer. + * @return The byte as integer or -1 to indicate that the + * offset is outside of the file. + */ + public int getSourceFileByte(int sourceFileId, int offset) { + if (sourceFileId >= sourceFilesBytes.size()) { + return -1; + } + + byte[] sourceFileBytes = sourceFilesBytes.get(sourceFileId); + if (sourceFileBytes == null) { + return -1; + } + + offset = offset + parameters.getSourceFile(sourceFileId).getOffset(); + if (offset < 0 || offset >= sourceFileBytes.length) { + return -1; + } + int value = sourceFileBytes[offset] & 0xff; + return value; + } + + public void setPalettePixel(int x, int y, int color) { + try { + imageData.setPixel(x, y, color); + } catch (RuntimeException ex) { + GraphicsPlugin + .getInstance() + .logError( + "Error setting palette pixel at ({0}, {1}) to color {2}. Image size is {3},{4}", + new String[] { + NumberUtility.getLongValueDecimalString(x), + NumberUtility.getLongValueDecimalString(y), + HexUtility.getLongValueHexString(color), + NumberUtility + .getLongValueDecimalString(imageData.width), + NumberUtility + .getLongValueDecimalString(imageData.height) }, + ex); + } + } + + public void setDirectPixel(int x, int y, int color) { + try { + imageData.setPixel(x, y, color); + } catch (RuntimeException ex) { + GraphicsPlugin + .getInstance() + .logError( + "Error setting direct pixel at ({0}, {1}) to color {2}. Image size is {3},{4}", + new String[] { + NumberUtility.getLongValueDecimalString(x), + NumberUtility.getLongValueDecimalString(y), + HexUtility.getLongValueHexString(color), + NumberUtility + .getLongValueDecimalString(imageData.width), + NumberUtility + .getLongValueDecimalString(imageData.height) }, + ex); + } + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterDataLogic.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterDataLogic.java new file mode 100644 index 00000000..d9833fb1 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterDataLogic.java @@ -0,0 +1,293 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ +package com.wudsn.ide.gfx.converter; + +import java.util.Iterator; +import java.util.List; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.converter.atari8bit.LinearBitMapGraphics8Converter; +import com.wudsn.ide.gfx.model.ConverterDirection; + +/** + * This class is based on the excellent open source + * "First Atari Image Library (FAIL)". Thanks to the creators to FAIL: Piotr + * Fusik, Adrian Matoga and Pawel Szewczyk for their support. You can find FAIL + * on sourceforge "http://fail.sourceforge.net". + * + * @author Peter Dell + * + */ + +public final class FilesConverterDataLogic { + + /** + * Helper class to detect the support binary file formats by their + * extension. The extension have to be defined with lower case characters. + * + * @author Peter Dell + */ + public static final class FileExtensions { + + // C64 font with 2 bytes load address + public static final String _64c = "64c"; + + // 80x192, 256 colors, interlaced + // @since FAIL 1.0.0 + public static final String AP3 = "ap3"; + + // Any Point, Any Color; 80x96, 256 colors, interlaced + // @since FAIL 1.0.0 + public static final String APC = "apc"; + + // 8x8 charset, mono or multicolor + // @since FAIL 1.0.0 + public static final String CHR = "chr"; + + // Champions' Interlace; 160x192, compressed + // @since FAIL 1.0.0 + public static final String CCI = "cci"; + + // Champions' Interlace; 160x192 + // @since FAIL 1.0.0 + public static final String CIN = "cin"; + + // Trzmiel; 320x192, mono, compressed + // @since FAIL 1.0.0 + public static final String CPR = "cpr"; + + // Standard 8x8 font, mono + // @since FAIL 1.0.0 + public static final String FNT = "fnt"; + + // Gephard Hires Graphics; up to 320x200, mono + // @since FAIL 1.0.1 + public static final String GHG = "ghg"; + + // Standard 320x192, mono + // @since FAIL 1.0.0 + public static final String GR8 = "gr8"; + + // Standard 80x192, grayscale + // @since FAIL 1.0.0 + public static final String GR9 = "gr9"; + + // Hard Interlace Picture; 160x200, grayscale + // @since FAIL 1.0.0 + public static final String HIP = "hip"; + + // Hires 256x239, 3 colors, interlaced + // @since FAIL 1.0.0 + public static final String HR = "hr"; + + // Hires 320x200, 5 colors, interlaced + // @since FAIL 1.0.1 + public static final String HR2 = "hr2"; + + // APAC 80x192, 256 colors interlaced + // @since FAIL 1.0.0 + public static final String ILC = "ilc"; + + // Interlace Picture 160x200, 7 colors, interlaced + // @since FAIL 1.0.0 + public static final String INP = "inp"; + + // INT95a, up to 160x239, 16 colors, interlaced + // @since FAIL 1.0.0 + public static final String INT = "int"; + + // McPainter; 160x200, 16 colors, interlaced + // @since FAIL 1.0.1 + public static final String MCP = "mcp"; + + // Micropainter 160x192, 4 colors + // @since FAIL 1.0.0 + public static final String MIC = "mic"; + + // Koala MicroIllustrator; 160x192, 4 colors, compressed + // @since FAIL 1.0.0 + public static final String PIC = "pic"; + + // Plama 256; 80x96, 256 colors + // @since FAIL 1.0.0 + public static final String PLM = "plm"; + + // Rocky Interlace Picture; up to 160x239 + // @since FAIL 1.0.0 + public static final String RIP = "rip"; + + // C64 sprites + // Can be mono or multi color. + public static final String SPR = "spr"; + + // 16x16 font, mono + // @since FAIL 1.0.0 + public static final String SXS = "sxs"; + + // Taquart Interlace Picture; up to 160x119 + // @since FAIL 1.0.0 + public static final String TIP = "tip"; + + + + // TODO Fail 1.1.0 +// Fixed decoding of ILC, AP3, RIP, PIC, CPR, HIP and CIN. +// Added support for MCH, IGE, 256, AP2, JGP, DGP, ESC, PZM, IST and RAW. +// MCH IGE 256 AP2 JGP DGP ESC PZM IST RAW +// 256:: 80x96, 256 colors. +// AP2:: 80x96, 256 colors. +// +// DGP:: "DigiPaint", 80x192, 256 colors, interlaced. +// ESC:: "EscalPaint", 80x192, 256 colors, interlaced. +// IGE:: "Interlace Graphics Editor", 128x96, 16 colors, interlaced. +// +// IST:: "Interlace Studio", 160x200, interlaced. +// JGP:: "Jet Graphics Planner", 8x16 tiles, 4 colors. +// MCH:: Up to 192x240, 128 colors. +// PZM:: "EscalPaint", 80x192, 256 colors, interlaced. +// RAW:: "XL-Paint MAX", 160x192, 16 colors, interlaced. + +// fail.h: #define FAIL_WIDTH_MAX 320 => 384, used in RIP +// +// /* Limits. */ +// #define FAIL_IMAGE_MAX 30000 +// #define FAIL_WIDTH_MAX 384 +// #define FAIL_HEIGHT_MAX 240 +// #define FAIL_PALETTE_MAX 768 +// #define FAIL_PIXELS_MAX (FAIL_WIDTH_MAX * FAIL_HEIGHT_MAX * 3) + } + + FilesConverterDataLogic() { + + } + + public void applyDefaults(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + FilesConverterParameters parameters; + Converter converter; + + parameters = data.getParameters(); + converter = data.getConverter(); + + // Take defaults from the definition. + if (converter != null) { + int targetImagePaletteSize = converter.getDefinition() + .getTargetImagePaletteSize(); + RGB[] rgbs; + if (targetImagePaletteSize > 0) { + rgbs = new RGB[targetImagePaletteSize]; + for (int i = 0; i < targetImagePaletteSize; i++) { + int brightness = (255 * i) / (targetImagePaletteSize - 1); + RGB rgb = new RGB(brightness, brightness, brightness); + rgbs[i] = rgb; + } + } else { + rgbs = new RGB[0]; + } + parameters.setPaletteRGBs(rgbs); + parameters.setDisplayAspect(converter.getDefinition() + .getTargetImageDisplayAspect()); + } + } + + /** + * Find the most suitable converter, apply its defaults and preset image + * dimensions and colors based on the input file. In case of compressed + * images, the source file in the data container is replaced by the unpacked + * content. This leads to unwanted effect during reload which can only be + * removed by the introduction of separate converters for these cases. + * + * @param data + * The file converter data, not null. + * @param bytes + * The file content of the input file, not null. + * @param fileExtension + * The file extension of the input file, may be empty, not + * null. + */ + public void findDefaultFileConverter(FilesConverterData data, byte[] bytes, + String fileExtension) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + if (fileExtension == null) { + throw new IllegalArgumentException( + "Parameter 'fileExtension' must not be null."); + } + int columns; + int rows; + FilesConverterParameters parameters = data.getParameters(); + + ConverterRegistry converterRegistry = GraphicsPlugin.getInstance() + .getConverterRegistry(); + List converterDefinitions = converterRegistry + .getDefinitions(ConverterDirection.FILES_TO_IMAGE); + + // Try to match file extensions and content. + boolean converted = false; + Iterator i = converterDefinitions.iterator(); + while (i.hasNext() && !converted) { + ConverterDefinition converterDefinition = i.next(); + if (converterDefinition + .isSourceFileExtensionSupported(fileExtension)) { + Converter converter = converterRegistry + .getConverter(converterDefinition.getId()); + if (converter.canConvertToImage(bytes)) { + converter.convertToImageSizeAndPalette(data, bytes); + converted = true; + } + } + } + + // Ignore file extension and try to match content only. + if (!converted) { + i = converterDefinitions.iterator(); + while (i.hasNext() && !converted) { + ConverterDefinition converterDefinition = i.next(); + Converter converter = converterRegistry + .getConverter(converterDefinition.getId()); + if (converter.canConvertToImage(bytes)) { + converter.convertToImageSizeAndPalette(data, bytes); + converted = true; + } + } + } + + // If nothing matched, display as hires bitmap. + if (!converted) { + data.getParameters().setConverterId( + LinearBitMapGraphics8Converter.class.getName()); + applyDefaults(data); + columns = 40; + rows = (bytes.length + columns - 1) / columns; + parameters.setColumns(columns); + parameters.setRows(rows); + } + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterParameters.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterParameters.java new file mode 100644 index 00000000..aa31fe1e --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/FilesConverterParameters.java @@ -0,0 +1,550 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.model.ConverterDirection; +import com.wudsn.ide.gfx.model.GraphicsPropertiesSerializer; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; + +public final class FilesConverterParameters extends ConverterCommonParameters { + + /** + * Names of the attributes. + * + * @author Peter Dell + * + */ + public static final class Attributes { + + /** + * Creation is private. + */ + private Attributes() { + } + + public static final String SOURCE_FILES = "sourceFiles"; + public static final String SOURCE_FILE_PATH = "path"; + public static final String SOURCE_FILE_OFFSET = "offset"; + public static final String IMAGE_FILE_PATH = "imageFilePath"; + + public static final String COLUMNS = "columns"; + public static final String ROWS = "rows"; + + public static final String SPACING_COLOR = "spacingColor"; + public static final String SPACING_WIDTH = "spacingWidth"; + + public static final String PIXEL_TYPE = "pixelType"; + public static final String PALETTE = "palette"; + public static final String PALETTE_TYPE = "paletteType"; + public static final String PALETTE_COLORS = "paletteRGBs"; + } + + /** + * Defaults of the attributes. + * + * @author Peter Dell + * + */ + private static final class Defaults { + + /** + * Creation is private. + */ + private Defaults() { + } + + public static final String SOURCE_FILE_PATH = ""; + public static final int SOURCE_FILE_OFFSET = 0; + public static final String IMAGE_FILE_PATH = ""; + + public static final int COLUMNS = 40; + public static final int ROWS = 24; + + public static final RGB SPACING_COLOR = new RGB(0, 0, 128); + public static final int SPACING_WIDTH = 0; + + public static final PaletteType PALETTE_TYPE = PaletteType.ATARI_DEFAULT; + public static final Palette PALETTE = Palette.HIRES_1; + public static final RGB[] PALETTE_COLORS = new RGB[0]; + } + + /** + * Message ids of the attributes. + * + * @author Peter Dell + * + */ + public static final class MessageIds { + + /** + * Creation is private. + */ + private MessageIds() { + } + + public static final int SOURCE_FILE_PATH = 1010; + public static final int SOURCE_FILE_OFFSET = 1020; + public static final int IMAGE_FILE_PATH = 1030; + + public static final int SPACING_COLOR = 1100; + public static final int SPACING_WIDTH = 1101; + public static final int COLUMNS = 1102; + public static final int ROWS = 1103; + + } + + /** + * A source file. + * + * @author Peter Dell + * + */ + public static final class SourceFile { + private int id; + private String path; + private int offset; + + public SourceFile(int id) { + this.id = id; + path = Defaults.SOURCE_FILE_PATH; + offset = Defaults.SOURCE_FILE_OFFSET; + } + + public int getId() { + return id; + } + + public int getPathMessageId() { + return MessageIds.SOURCE_FILE_PATH + id; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + if (path == null) { + throw new IllegalArgumentException( + "Parameter 'path' must not be null."); + } + this.path = path; + } + + public int getOffsetMessageId() { + return MessageIds.SOURCE_FILE_OFFSET + id; + } + + public int getOffset() { + return offset; + } + + public void setOffset(int offset) { + this.offset = offset; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + throw new IllegalArgumentException( + "Parameter 'obj' must not be null."); + } + SourceFile other = (SourceFile) obj; + return other.id == this.id && other.path.equals(this.path) + && other.offset == this.offset; + } + + @Override + public int hashCode() { + return id + 7 * path.hashCode() + 17 * offset; + } + + } + + private int sourceFilesSize; + private List sourceFiles; + private String imageFilePath; + + private int columns; + private int rows; + + private RGB spacingColor; + private int spacingWidth; + + private PaletteType paletteType; + private Palette palette; + private RGB[] paletteRGBs; + + FilesConverterParameters() { + + int size = ConverterRegistry.MAX_SOURCE_FILES; + this.sourceFiles = new ArrayList(size); + for (int i = 0; i < size; i++) { + this.sourceFiles.add(new SourceFile(i)); + } + setDefaults(); + } + + @Override + public void setDefaults() { + super.setDefaults(); + + for (SourceFile sourceFile : sourceFiles) { + sourceFile.setPath(Defaults.SOURCE_FILE_PATH); + sourceFile.setOffset(Defaults.SOURCE_FILE_OFFSET); + } + imageFilePath = Defaults.IMAGE_FILE_PATH; + + columns = Defaults.COLUMNS; + rows = Defaults.ROWS; + spacingColor = Defaults.SPACING_COLOR; + spacingWidth = Defaults.SPACING_WIDTH; + + paletteType = Defaults.PALETTE_TYPE; + palette = Defaults.PALETTE; + paletteRGBs = Defaults.PALETTE_COLORS; + } + + @Override + public void setConverterId(String value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.converterId = value; + + ConverterDefinition converterDefinition; + converterDefinition = GraphicsPlugin.getInstance() + .getConverterRegistry() + .getDefinition(converterId, ConverterDirection.FILES_TO_IMAGE); + if (converterDefinition != null) { + sourceFilesSize = converterDefinition.getSourceFileDefinitions().size(); + } else { + sourceFilesSize = 0; + } + } + + public void setDefaultSourceFilePath(String sourceFilePath) { + if (sourceFilePath == null) { + throw new IllegalArgumentException( + "Parameter 'sourceFilePath' must not be null."); + } + for (int i = 0; i < sourceFiles.size(); i++) { + SourceFile sourceFile = sourceFiles.get(i); + sourceFile.setPath(sourceFilePath); + sourceFile.setOffset(0); + } + } + + public int getSourceFilesSize() { + return sourceFilesSize; + } + + public SourceFile getSourceFile(int sourceFileId) { + return sourceFiles.get(sourceFileId); + } + + public void setImageFilePath(String value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.imageFilePath = value; + } + + public String getImageFilePath() { + return imageFilePath; + } + + public void setColumns(int value) { + this.columns = value; + } + + public int getColumns() { + return columns; + } + + public void setRows(int value) { + this.rows = value; + } + + public int getRows() { + return rows; + } + + /** + * Sets the spacing color. + * + * @param value + * The spacing color or null to set the default + * value. + */ + public void setSpacingColor(RGB value) { + if (value == null) { + value = Defaults.SPACING_COLOR; + } + this.spacingColor = value; + } + + /** + * Gets the spacing color. + * + * @return The spacing color, not null. + */ + public RGB getSpacingColor() { + if (spacingColor == null) { + throw new IllegalStateException("Spacing color must not be null"); + } + return spacingColor; + } + + public void setSpacingWidth(int value) { + this.spacingWidth = value; + } + + public int getSpacingWidth() { + return spacingWidth; + } + + public void setPaletteType(PaletteType value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.paletteType = value; + } + + public PaletteType getPaletteType() { + return paletteType; + } + + public void setPalette(Palette value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.palette = value; + } + + public void setPaletteManual() { + switch (palette) { + case TRUE_COLOR: + palette = Palette.TRUE_COLOR; + break; + case HIRES_1: + case HIRES_2: + case HIRES_MANUAL: + palette = Palette.HIRES_MANUAL; + break; + case MULTI_1: + case MULTI_2: + case MULTI_3: + case MULTI_4: + case MULTI_5: + case MULTI_6: + case MULTI_MANUAL: + palette = Palette.MULTI_MANUAL; + break; + case GTIA_GREY_1: + case GTIA_GREY_2: + case GTIA_GREY_MANUAL: + palette = Palette.GTIA_GREY_MANUAL; + break; + } + } + + public Palette getPalette() { + return palette; + } + + /** + * Sets the array of palette RGBs. Note that the values is kept as a reference. + * + * @param value The array of palette RGBs, may be empty, not null. + */ + public void setPaletteRGBs(RGB[] value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.paletteRGBs = value; + + } + + /** + * Gets the array of palette RGBs. Note that the returned values is a reference. + * + * @return The array of palette RGBs, may be empty, not null. + */ + public RGB[] getPaletteRGBs() { + return paletteRGBs; + } + + protected final void copyTo(FilesConverterParameters target) { + if (target == null) { + throw new IllegalArgumentException( + "Parameter 'target' must not be null."); + } + super.copyTo(target); + + target.sourceFiles.clear(); + for (SourceFile sourceFile : sourceFiles) { + SourceFile targetSourceFile; + targetSourceFile = new SourceFile(sourceFile.getId()); + targetSourceFile.setPath(sourceFile.getPath()); + targetSourceFile.setOffset(sourceFile.getOffset()); + target.sourceFiles.add(targetSourceFile); + } + target.setImageFilePath(imageFilePath); + + target.setRows(rows); + target.setColumns(columns); + target.setSpacingColor(spacingColor); + target.setSpacingWidth(spacingWidth); + + target.setPaletteType(paletteType); + target.setPalette(palette); + target.setPaletteRGBs(paletteRGBs); + } + + protected final boolean equals(FilesConverterParameters target) { + if (target == null) { + throw new IllegalArgumentException( + "Parameter 'target' must not be null."); + } + boolean result; + result = super.equals(target); + result = result && target.sourceFiles.equals(sourceFiles); + result = result && target.getImageFilePath().equals(imageFilePath); + result = result && target.getRows() == rows; + result = result && target.getColumns() == columns; + result = result && target.getSpacingColor().equals(spacingColor); + result = result && target.getSpacingWidth() == spacingWidth; + + result = result && target.getPaletteType().equals(paletteType); + result = result && target.getPalette().equals(palette); + result = result && Arrays.equals(target.getPaletteRGBs(), paletteRGBs); + return result; + } + + @Override + protected final void serialize(GraphicsPropertiesSerializer serializer, + String key) { + if (serializer == null) { + throw new IllegalArgumentException( + "Parameter 'serializer' must not be null."); + } + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + + super.serialize(serializer, key); + + GraphicsPropertiesSerializer ownSerializer; + ownSerializer = new GraphicsPropertiesSerializer(); + + ownSerializer.writeInteger(Attributes.SOURCE_FILES, sourceFilesSize); + for (int i = 0; i < sourceFilesSize; i++) { + SourceFile sourceFile = sourceFiles.get(i); + GraphicsPropertiesSerializer innerSeralizer; + innerSeralizer = new GraphicsPropertiesSerializer(); + innerSeralizer.writeString(Attributes.SOURCE_FILE_PATH, + sourceFile.getPath()); + innerSeralizer.writeInteger(Attributes.SOURCE_FILE_OFFSET, + sourceFile.getOffset()); + ownSerializer.writeProperties(Attributes.SOURCE_FILES + "." + i, + innerSeralizer); + } + + ownSerializer.writeString(Attributes.IMAGE_FILE_PATH, imageFilePath); + + ownSerializer.writeInteger(Attributes.COLUMNS, columns); + ownSerializer.writeInteger(Attributes.ROWS, rows); + + ownSerializer.writeRGB(Attributes.SPACING_COLOR, spacingColor); + ownSerializer.writeInteger(Attributes.SPACING_WIDTH, spacingWidth); + + ownSerializer.writeEnum(Attributes.PALETTE, palette); + ownSerializer.writeEnum(Attributes.PALETTE_TYPE, paletteType); + ownSerializer.writeRGBArray(Attributes.PALETTE_COLORS, paletteRGBs); + + serializer.writeProperties(key, ownSerializer); + } + + @Override + protected final void deserialize(GraphicsPropertiesSerializer serializer, + String key) { + if (serializer == null) { + throw new IllegalArgumentException( + "Parameter 'serializer' must not be null."); + } + if (key == null) { + throw new IllegalArgumentException(); + } + super.deserialize(serializer, key); + + GraphicsPropertiesSerializer ownSerializer; + ownSerializer = new GraphicsPropertiesSerializer(); + serializer.readProperties(key, ownSerializer); + + sourceFiles.clear(); + for (int i = 0; i < ConverterRegistry.MAX_SOURCE_FILES; i++) { + SourceFile sourceFile = new SourceFile(i); + GraphicsPropertiesSerializer innerSerializer; + innerSerializer = new GraphicsPropertiesSerializer(); + ownSerializer.readProperties(Attributes.SOURCE_FILES + "." + i, + innerSerializer); + sourceFile.setPath(innerSerializer.readString( + Attributes.SOURCE_FILE_PATH, Defaults.SOURCE_FILE_PATH)); + sourceFile + .setOffset(innerSerializer.readInteger( + Attributes.SOURCE_FILE_OFFSET, + Defaults.SOURCE_FILE_OFFSET)); + sourceFiles.add(sourceFile); + } + + imageFilePath = ownSerializer.readString(Attributes.IMAGE_FILE_PATH, + Defaults.IMAGE_FILE_PATH); + + columns = ownSerializer.readInteger(Attributes.COLUMNS, + Defaults.COLUMNS); + rows = ownSerializer.readInteger(Attributes.ROWS, Defaults.ROWS); + + spacingColor = ownSerializer.readRGB(Attributes.SPACING_COLOR, + Defaults.SPACING_COLOR); + spacingWidth = ownSerializer.readInteger(Attributes.SPACING_WIDTH, + Defaults.SPACING_WIDTH); + + palette = ownSerializer.readEnum(Attributes.PALETTE, Defaults.PALETTE, + Palette.class); + paletteType = ownSerializer.readEnum(Attributes.PALETTE_TYPE, + Defaults.PALETTE_TYPE, PaletteType.class); + paletteRGBs = ownSerializer.readRGBArray(Attributes.PALETTE_COLORS, + Defaults.PALETTE_COLORS); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageColorHistogram.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageColorHistogram.java new file mode 100644 index 00000000..afeda9b5 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageColorHistogram.java @@ -0,0 +1,240 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.TreeMap; + +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.PaletteData; +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.base.common.NumberFactory; + +/** + * Image color histogram container. Counts the number of occurrences of a pixel + * color value in an image data. Pixel color values may be greater than 256 in + * case of direct palettes. + * + * @author Peter Dell + */ +public final class ImageColorHistogram { + + private PaletteData paletteData; + private int pixelCount; + private List pixelColors; + private List usedPixelColors; + private TreeMap pixelColorCounts; + + /** + * Created by {@link ImageConverterData}. + */ + ImageColorHistogram() { + pixelColors = Collections.emptyList(); + usedPixelColors = Collections.emptyList(); + pixelColorCounts = new TreeMap(); + } + + /** + * Clears the histogram. + */ + final void clear() { + paletteData = null; + pixelCount = 0; + pixelColors = Collections.emptyList(); + usedPixelColors = Collections.emptyList(); + pixelColorCounts.clear(); + } + + /** + * Counts the number of occurrences of a pixel value in the image data. + * + * @param imageData + * The image data or null. + */ + final void analyze(ImageData imageData) { + + clear(); + if (imageData != null) { + pixelCount = imageData.height * imageData.width; + paletteData = imageData.palette; + + if (paletteData.isDirect) { + pixelColors = Collections.emptyList(); + } else { + RGB[] rgbs = paletteData.getRGBs(); + int size = rgbs.length; + pixelColors = new ArrayList(size); + for (int i = 0; i < size; i++) { + pixelColors.add(NumberFactory.getInteger(i)); + } + pixelColors = Collections.unmodifiableList(pixelColors); + } + for (int y = 0; y < imageData.height; y++) { + for (int x = 0; x < imageData.width; x++) { + Integer pixelColor = NumberFactory.getInteger(imageData + .getPixel(x, y)); + Integer pixelColorCount = pixelColorCounts.get(pixelColor); + if (pixelColorCount == null) { + pixelColorCount = NumberFactory.getInteger(1); + } else { + pixelColorCount = NumberFactory + .getInteger(pixelColorCount.intValue() + 1); + } + pixelColorCounts.put(pixelColor, pixelColorCount); + } + } + } else { + pixelColors = Collections.emptyList(); + } + usedPixelColors = Collections.unmodifiableList(new ArrayList( + pixelColorCounts.keySet())); + } + + public boolean isDirectPalette() { + if (paletteData == null) { + return true; + } + return paletteData.isDirect; + } + + /** + * Gets the number of bits used for representing pixels. + * + * @return The number of bits used for representing pixels or 0 + * if there is no image. + */ + public int getPaletteBits() { + if (paletteData == null) { + return 0; + } + if (paletteData.isDirect) { + return Integer.bitCount(paletteData.redMask) + + Integer.bitCount(paletteData.greenMask) + + Integer.bitCount(paletteData.blueMask); + } + int length = paletteData.getRGBs().length; + int result = 0; + while (length != 0) { + result++; + length = length >>> 1; + } + return result; + } + + /** + * Gets the total number of pixels in the image data. It corresponds to the + * sum of count returned by {@link #getPixelColorCount(Integer)}. + * + * @return The total pixel color count. + */ + public int getPixelCount() { + return pixelCount; + } + + /** + * Gets the list of all pixel colors in the palette if the palette is an + * indexed palette. If the palette is not indexed, the result is an empty + * list. + * + * @return The unmodifiable list of pixel colors, sorted by their pixel + * value, may be empty, not null. + */ + public List getPalettePixelColors() { + return pixelColors; + } + + /** + * Gets the list of used pixel colors in the image data, sorted by their + * pixel value. This method work the same way for direct and indexed + * palettes. + * + * @return The unmodifiable list of pixel colors, sorted by their pixel + * value, may be empty, not null. + */ + public List getUsedPixelColors() { + return usedPixelColors; + } + + /** + * Gets the number of occurrences of a pixel color value in the image data. + * + * @param pixelColor + * The pixel color, not null. + * @return The count or 0 in case the pixel color is not + * contained in the image. + */ + public int getPixelColorCount(Integer pixelColor) { + if (pixelColor == null) { + throw new IllegalArgumentException( + "Parameter 'pixelColor' must not be null."); + } + Integer count = pixelColorCounts.get(pixelColor); + if (count == null) { + return 0; + } + return count.intValue(); + + } + + /** + * Gets the RGB value for a pixel color. This method work the same way for + * direct and indexed palettes. + * + * @param pixelColor + * The pixel color, not null. + * @return The RGB value for the pixel color, not null. + */ + public RGB getRGB(Integer pixelColor) { + if (pixelColor == null) { + throw new IllegalArgumentException( + "Parameter 'pixelColor' must not be null."); + } + + RGB rgb; + if (paletteData != null) { + // Indexed palette images may contain pixel values without + // corresponding + int intValue = pixelColor.intValue(); + if (paletteData.isDirect) { + rgb = paletteData.getRGB(intValue); + } else { + // In indexed palette images, the palette may be shorter than + // the actually used color. + RGB[] rgbs = paletteData.getRGBs(); + if (intValue < rgbs.length) { + rgb = rgbs[intValue]; + if (rgb == null) { + throw new IllegalStateException( + "Palette data has no RGB value at index " + + intValue + "."); + } + } else { + rgb = new RGB(0, 0, 0); + } + } + } else { + rgb = new RGB(0, 0, 0); + } + return rgb; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageConverterData.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageConverterData.java new file mode 100644 index 00000000..83bab275 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageConverterData.java @@ -0,0 +1,247 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.RGB; +import org.mozilla.javascript.NativeArray; + +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.model.ConverterMode; + +public final class ImageConverterData extends ConverterCommonData { + + private ImageConverterParameters parameters; + + // Purely transient cache attributes. + private transient ConverterScriptData converterScriptData; + private transient ImageData targetImageData; + private transient List targetFilesBytes; + + ImageConverterData(ConverterData converterData) { + super(converterData); + this.parameters = converterData.getParameters().getImageConverterParameters(); + converterScriptData = new ConverterScriptData(); + targetFilesBytes = new ArrayList(0); + + } + + public ImageConverterParameters getParameters() { + return parameters; + } + + public Converter getConverter() { + ConverterRegistry converterRegistry; + Converter converter; + converterRegistry = GraphicsPlugin.getInstance().getConverterRegistry(); + converter = converterRegistry.getConverter(parameters.getConverterId()); + return converter; + } + + @Override + public boolean isCreateConversionEnabled() { + return converterData.isValid() && converterData.getConverterMode() == ConverterMode.RAW_IMAGE; + } + + @Override + public boolean isValid() { + return converterData.isValidImage(); + } + + public boolean isValidConversion() { + return converterData.isValidConversion(); + } + + @Override + public boolean isRefreshEnabled() { + return converterData.isValidImage(); + } + + public boolean isSaveFilesEnabled() { + if (converterData.isValidConversion()) { + for (byte[] bytes : targetFilesBytes) { + if (bytes != null) { + return true; + } + } + } + return false; + } + + /** + * Clears the image data. + */ + @Override + public void clear() { + super.clear(); + clearTargetFileBytes(); + } + + /** + * Gets the pixel color value for a given position. There must be an + * instance of image data set. + * + * @param x + * The x position, a non-negative integer. + * @param y + * The y position, a non-negative integer. + * + * @return The pixel color value. + * + * @throws NullPointerException + * if there is no image data at all. + */ + public int getPixel(int x, int y) { + try { + return imageData.getPixel(x, y); + } catch (IllegalArgumentException ex) { + throw new RuntimeException("Pixel (" + x + "," + y + ") is outside of the image."); + } + } + + /** + * Gets the pixel RGB value for a given position. There must be an instance + * of image data set. + * + * @param x + * The x position, a non-negative integer. + * @param y + * The y position, a non-negative integer. + * + * @return The pixel color value. + * + * @throws NullPointerException + * if there is no image data at all. + */ + public int getPixelRGB(int x, int y) { + int result = getPixel(x, y); + if (!imageData.palette.isDirect) { + RGB rgb = imageData.palette.getRGB(result); + result = rgb.red << 16 | rgb.green << 8 | rgb.blue; + } + return result; + } + + /** + * Sets the target image data, i.e. the image data after converting it to + * files and back. + * + * @param targetImageData + * The target image data or null. + */ + public void setTargetImageData(ImageData targetImageData) { + this.targetImageData = targetImageData; + } + + /** + * Gets the target image data, i.e. the image data after converting is to + * files and back. + * + * @return The target image data or null. + */ + public ImageData getTargetImageData() { + return targetImageData; + } + + /** + * Gets the container for the converter script. + * + * @return The container for the converter script, not null. + */ + public ConverterScriptData getConverterScriptData() { + return converterScriptData; + } + + /** + * Clears all target files bytes. + */ + public void clearTargetFileBytes() { + targetFilesBytes.clear(); + } + + /** + * Sets the bytes for a target file from java script. + * + * @param targetFileId + * The target field id, a non-negative integer. + * @param scriptBytes + * The bytes, may be empty or null. + */ + public void setTargetFileObject(int targetFileId, NativeArray scriptBytes) { + byte[] bytes = null; + if (scriptBytes != null) { + int length = (int) scriptBytes.getLength(); + bytes = new byte[length]; + for (int i = 0; i < length; i++) { + Object o = scriptBytes.get(i, null); + if (o instanceof Double) { + bytes[i] = ((Double) o).byteValue(); + } else if (o instanceof Integer) { + bytes[i] = ((Integer) o).byteValue(); + } + } + } + setTargetFileBytes(targetFileId, bytes); + } + + /** + * Sets the bytes for a target file. + * + * @param targetFileId + * The target field id, a non-negative integer. + * @param bytes + * The bytes, may be empty or null. + */ + public void setTargetFileBytes(int targetFileId, byte[] bytes) { + if (targetFileId < 0) { + throw new IllegalArgumentException("Parameter 'targetFileId' must not be negative. Specified value is " + + targetFileId + "."); + } + while (targetFilesBytes.size() <= targetFileId) { + targetFilesBytes.add(null); + } + targetFilesBytes.set(targetFileId, bytes); + } + + /** + * Gets the bytes for a target file. + * + * @param targetFileId + * The target field id, a non-negative integer. + * @return The bytes, may be empty or null. + */ + public byte[] getTargetFileBytes(int targetFileId) { + if (targetFileId < 0) { + throw new IllegalArgumentException("Parameter 'targetFileId' must not be negative. Specified value is " + + targetFileId + "."); + } + byte[] bytes; + if (targetFileId < targetFilesBytes.size()) { + bytes = targetFilesBytes.get(targetFileId); + } else { + bytes = null; + } + return bytes; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageConverterParameters.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageConverterParameters.java new file mode 100644 index 00000000..31ccb6a9 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/ImageConverterParameters.java @@ -0,0 +1,372 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.List; + +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.model.ConverterDirection; +import com.wudsn.ide.gfx.model.GraphicsPropertiesSerializer; + +public final class ImageConverterParameters extends ConverterCommonParameters { + + public static final class Attributes { + + /** + * Creation is private. + */ + private Attributes() { + } + + public static final String IMAGE_FILE_PATH = "imageFilePath"; + + public static final String TARGET_FILES = "targetFiles"; + public static final String TARGET_FILE_PATH = "path"; + + public static final String USE_DEFAULT_SCRIPT = "useDefaultScript"; + public static final String SCRIPT = "script"; + + } + + private static final class Defaults { + + /** + * Creation is private. + */ + private Defaults() { + } + + public static final String IMAGE_FILE_PATH = ""; + public static final String TARGET_FILE_PATH = ""; + + public static final boolean USE_DEFAULT_SCRIPT = true; + public static final String SCRIPT = ""; + } + + public static final class MessageIds { + + /** + * Creation is private. + */ + private MessageIds() { + } + + public static final int IMAGE_FILE_PATH = 2010; + public static final int TARGET_FILE_PATH = 2020; + public static final int TARGET_FILE_OFFSET = 2030; + public static final int USE_DEFAULT_SCRIPT = 2040; + public static final int SCRIPT = 2041; + } + + public static final class TargetFile { + private int id; + private String path; + private int offset; + + public TargetFile(int id) { + this.id = id; + path = Defaults.TARGET_FILE_PATH; + } + + public int getId() { + return id; + } + + public int getPathMessageId() { + return MessageIds.TARGET_FILE_PATH + id; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + if (path == null) { + throw new IllegalArgumentException( + "Parameter 'path' must not be null."); + } + this.path = path; + } + + public int getOffsetMessageId() { + return MessageIds.TARGET_FILE_OFFSET + id; + } + + public int getOffset() { + return offset; + } + + public void setOffset(int offset) { + this.offset = offset; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + throw new IllegalArgumentException( + "Parameter 'obj' must not be null."); + } + TargetFile other = (TargetFile) obj; + return other.id == this.id && other.path.equals(this.path) + && other.offset == this.offset; + } + + @Override + public int hashCode() { + return id + 7 * path.hashCode() + 17 * offset; + } + + } + + private String imageFilePath; + private int targetFilesSize; + private List targetFiles; + private boolean useDefaultScript; + private String script; + + ImageConverterParameters() { + + int size = ConverterRegistry.MAX_SOURCE_FILES; + this.targetFiles = new ArrayList(size); + for (int i = 0; i < size; i++) { + this.targetFiles.add(new TargetFile(i)); + } + setDefaults(); + } + + @Override + public void setDefaults() { + super.setDefaults(); + imageFilePath = Defaults.IMAGE_FILE_PATH; + for (TargetFile targetFile : targetFiles) { + targetFile.setPath(Defaults.TARGET_FILE_PATH); + } + useDefaultScript = Defaults.USE_DEFAULT_SCRIPT; + script = Defaults.SCRIPT; + } + + @Override + public void setConverterId(String value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + + if (!value.equals(this.converterId)) + this.converterId = value; + + ConverterDefinition converterDefinition; + converterDefinition = GraphicsPlugin.getInstance() + .getConverterRegistry() + .getDefinition(converterId, ConverterDirection.IMAGE_TO_FILES); + if (converterDefinition != null) { + targetFilesSize = targetFiles.size(); + } else { + targetFilesSize = 0; + } + } + + public void setDefaultTargetFilePath(String targetFilePath) { + if (targetFilePath == null) { + throw new IllegalArgumentException( + "Parameter 'targetFilePath' must not be null."); + } + for (int i = 0; i < targetFiles.size(); i++) { + TargetFile targetFile = targetFiles.get(i); + targetFile.setPath(targetFilePath); + targetFile.setOffset(0); + } + } + + public void setImageFilePath(String value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.imageFilePath = value; + } + + public String getImageFilePath() { + return imageFilePath; + } + + public int getTargetFilesSize() { + return targetFilesSize; + } + + public TargetFile getTargetFile(int targetFileId) { + return targetFiles.get(targetFileId); + } + + /** + * Sets the indicator to use the default script + * + * @param value + * true to use the default script, + * false to use the saved script. + */ + public void setUseDefaultScript(boolean value) { + this.useDefaultScript = value; + } + + /** + * Gets the indicator to use the default script + * + * @return true to use the default script, false + * to use the saved script. + */ + public boolean isUseDefaultScript() { + return useDefaultScript; + } + + /** + * Gets the script for the conversion logic. + * + * @param value + * The script, may be empty, not null. + */ + public void setScript(String value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + this.script = value; + } + + /** + * Gets the script for the conversion logic. + * + * @return The script, may be empty, not null. + */ + public String getScript() { + if (script == null) { + throw new IllegalStateException("Field 'script' must not be null."); + } + return script; + } + + protected final void copyTo(ImageConverterParameters target) { + if (target == null) { + throw new IllegalArgumentException( + "Parameter 'target' must not be null."); + } + super.copyTo(target); + + target.setImageFilePath(imageFilePath); + target.targetFiles.clear(); + for (TargetFile targetFile : targetFiles) { + TargetFile targetTargetFile; + targetTargetFile = new TargetFile(targetFile.getId()); + targetTargetFile.setPath(targetFile.getPath()); + targetTargetFile.setOffset(targetFile.getOffset()); + target.targetFiles.add(targetTargetFile); + } + + target.setUseDefaultScript(useDefaultScript); + target.setScript(script); + } + + protected final boolean equals(ImageConverterParameters target) { + if (target == null) { + throw new IllegalArgumentException( + "Parameter 'target' must not be null."); + } + boolean result; + result = super.equals(target); + result = result && target.getImageFilePath().equals(imageFilePath); + result = result && target.targetFiles.equals(targetFiles); + result = result && target.isUseDefaultScript() == useDefaultScript; + result = result && target.getScript().equals(script); + return result; + } + + @Override + protected final void serialize(GraphicsPropertiesSerializer serializer, + String key) { + if (serializer == null) { + throw new IllegalArgumentException( + "Parameter 'serializer' must not be null."); + } + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + + super.serialize(serializer, key); + GraphicsPropertiesSerializer ownSerializer; + + ownSerializer = new GraphicsPropertiesSerializer(); + ownSerializer.writeString(Attributes.IMAGE_FILE_PATH, imageFilePath); + ownSerializer.writeInteger(Attributes.TARGET_FILES, targetFilesSize); + for (int i = 0; i < targetFilesSize; i++) { + TargetFile targetFile = targetFiles.get(i); + GraphicsPropertiesSerializer innerSeralizer; + innerSeralizer = new GraphicsPropertiesSerializer(); + innerSeralizer.writeString(Attributes.TARGET_FILE_PATH, + targetFile.getPath()); + ownSerializer.writeProperties(Attributes.TARGET_FILES + "." + i, + innerSeralizer); + } + + ownSerializer.writeBoolean(Attributes.USE_DEFAULT_SCRIPT, useDefaultScript); + ownSerializer.writeString(Attributes.SCRIPT, script); + + serializer.writeProperties(key, ownSerializer); + } + + @Override + protected final void deserialize(GraphicsPropertiesSerializer serializer, + String key) { + if (serializer == null) { + throw new IllegalArgumentException( + "Parameter 'serializer' must not be null."); + } + if (key == null) { + throw new IllegalArgumentException(); + } + + super.deserialize(serializer, key); + GraphicsPropertiesSerializer ownSerializer; + ownSerializer = new GraphicsPropertiesSerializer(); + serializer.readProperties(key, ownSerializer); + + imageFilePath = ownSerializer.readString(Attributes.IMAGE_FILE_PATH, + Defaults.IMAGE_FILE_PATH); + imageFilePath = ownSerializer.readString(Attributes.IMAGE_FILE_PATH, + Defaults.IMAGE_FILE_PATH); + targetFiles.clear(); + for (int i = 0; i < ConverterRegistry.MAX_TARGET_FILES; i++) { + TargetFile targetFile = new TargetFile(i); + GraphicsPropertiesSerializer innerSerializer; + innerSerializer = new GraphicsPropertiesSerializer(); + ownSerializer.readProperties(Attributes.TARGET_FILES + "." + i, + innerSerializer); + targetFile.setPath(innerSerializer.readString( + Attributes.TARGET_FILE_PATH, Defaults.TARGET_FILE_PATH)); + targetFiles.add(targetFile); + } + + useDefaultScript = ownSerializer.readBoolean( + Attributes.USE_DEFAULT_SCRIPT, Defaults.USE_DEFAULT_SCRIPT); + script = ownSerializer.readString(Attributes.SCRIPT, Defaults.SCRIPT); + + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/InverseBlock.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/InverseBlock.java new file mode 100644 index 00000000..19aba840 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/InverseBlock.java @@ -0,0 +1,70 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +/** + * Square block of character which shall be inverse + * + * @author Peter Dell + */ +public final class InverseBlock { + + private int column1; + private int column2; + private int row1; + private int row2; + private Integer inverseColor; + private boolean inverseIfConflict; + + InverseBlock(int column1, int column2, int row1, int row2, + Integer inverseColor, boolean inverseIfConflict) { + this.column1 = column1; + this.column2 = column2; + this.row1 = row1; + this.row2 = row2; + this.inverseColor = inverseColor; + this.inverseIfConflict = inverseIfConflict; + + } + + public int getColumn1() { + return column1; + } + + public int getColumn2() { + return column2; + } + + public int getRow1() { + return row1; + } + + public int getRow2() { + return row2; + } + + public Integer getInverseColor() { + return inverseColor; + } + + public boolean isInverseIfConflict() { + return inverseIfConflict; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/InverseBlockList.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/InverseBlockList.java new file mode 100644 index 00000000..c7e25a02 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/InverseBlockList.java @@ -0,0 +1,88 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.List; + +/** + * List of square blocks of character which shall be inverse + * + * @author Peter Dell + */ +public final class InverseBlockList { + + private List inverseBlocks; + + /** + * Creates an empty inverse block list. + */ + public InverseBlockList() { + inverseBlocks = new ArrayList(); + } + + /** + * Adds a new inverse block to the list. + * + * @param column1 + * Start column, a non-negative integer + * @param column2 + * End column, a non-negative integer + * @param row1 + * Start row, a non-negative integer + * @param row2 + * End row, a non-negative integer + * @param inverseColor + * The pixel color value which shall be used as inverse color + * @param inverseIfConflict + * true if the inverse color shall also be used in + * case of conflict + */ + public void add(int column1, int column2, int row1, int row2, + Integer inverseColor, boolean inverseIfConflict) { + inverseBlocks.add(new InverseBlock(column1, column2, row1, row2, + inverseColor, inverseIfConflict)); + } + + /** + * Get the inverse block at The sequence in which the blocks were added + * determines, the sequence in which the method checks for matches. + * + * @param column + * The column, a non-negative integer. + * @param row + * The column, a non-negative integer. + * @return The first matching inverse block, or null if no + * inverse block matches. + */ + public InverseBlock getInverseBlock(int column, int row) { + + for (InverseBlock inverseBlock : inverseBlocks) { + if (inverseBlock.getColumn1() <= column + && column <= inverseBlock.getColumn2() + && inverseBlock.getRow1() <= row + && row <= inverseBlock.getRow2()) { + return inverseBlock; + } + } + return null; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/PaletteMapper.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/PaletteMapper.java new file mode 100644 index 00000000..be34952a --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/PaletteMapper.java @@ -0,0 +1,177 @@ +package com.wudsn.ide.gfx.converter; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.base.common.NumberFactory; + +/** + * Copyright (C) 2009 - 2014 Peter + * Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 2 of the License, or (at your option) any later + * version. + * + * WUDSN IDE is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * WUDSN IDE. If not, see . + */ + +/** + * Palette mapper for mapping palette indices to RGB and back. The palette data + * is stored in files in the folder for the sub-package "/palettes", relative to + * the location if the palette mapper implementation class. The file content is + * loaded from the class path using the class loader. + * + * + * @since 1.6.4 + */ +public abstract class PaletteMapper { + private int palette_size; + private int[] palette_r; + private int[] palette_g; + private int[] palette_b; + private Map map; + + protected PaletteMapper(int palette_size) { + if (palette_size < 1) { + throw new IllegalArgumentException("Parameter 'palette_size' must be positive. Specified value is " + + palette_size + "."); + } + this.palette_size = palette_size; + map = new HashMap(); + palette_r = new int[palette_size]; + palette_g = new int[palette_size]; + palette_b = new int[palette_size]; + } + + public final void loadPalette(String fileName) { + if (fileName == null) { + throw new IllegalArgumentException("Parameter 'fileName' must not be null."); + } + InputStream inputStream; + Class clazz = getClass(); + inputStream = clazz.getClassLoader().getResourceAsStream( + clazz.getPackage().getName().replace('.', '/') + "/palettes/" + fileName); + if (inputStream == null) { + try { + + inputStream = new FileInputStream(fileName); + } catch (FileNotFoundException ex) { + throw new RuntimeException("File '" + fileName + "' not found or not readable", ex); + } + } + + byte[] buffer = new byte[palette_size * 3]; + int count; + do { + try { + count = inputStream.read(buffer); + } catch (IOException ex) { + throw new RuntimeException("Cannot read palette '" + fileName + "'", ex); + } + if (count > 0) { + int j = 0; + for (int i = 0; i < count; i = i + 3, j++) { + palette_r[j] = buffer[i] & 0xff; + palette_g[j] = buffer[i + 1] & 0xff; + palette_b[j] = buffer[i + 2] & 0xff; + } + } + } while (count > -1); + + map.clear(); + } + + /** + * Gets the index of an RGB value in the palette. + * + * @param rgb + * The 24-bit RGB value + * @return The palette index, or -1 is there is not + * corresponding palette index. + */ + public final int getPaletteIndex(int rgb) { + return getPaletteIndex(rgb >>> 16 & 0xff, rgb >>> 8 & 0xff, rgb & 0xff); + } + + /** + * Gets the index of an RGB value in the palette. + * + * @param r + * The 8-bit red value + * @param g + * The 8-bit green value + * @param b + * The 8-bit blue value + + * @return The palette index, or -1 is there is not + * corresponding palette index. + */ + public final int getPaletteIndex(int r, int g, int b) { + int color = r << 16 | g << 8 | b; + Integer colorKey = NumberFactory.getInteger(color); + + Integer colorValue = map.get(colorKey); + + if (colorValue == null) { + + int diff = 0x7fffffff; + int n = 0; + for (int m = 0; m < 256; m++) { + int e = (palette_r[m] - r); + int d = e * e; + e = (palette_g[m] - g); + d += e * e; + e = (palette_b[m] - b); + d += e * e; + if (d < diff) { + diff = d; + n = m; + } + } + colorValue = new Integer(n); + map.put(colorKey, colorValue); + } + return colorValue.intValue(); + + } + + /** + * Gets an Atari color with a given color code as RGB value. + * + * @param paletteIndex + * The palette index, a non-negative integer. + * @return The RGB value, not null. + */ + public final RGB getRGB(int paletteIndex) { + RGB result; + result = new RGB(palette_r[paletteIndex], palette_g[paletteIndex], palette_b[paletteIndex]); + return result; + } + + /** + * Gets an Atari color with a given color code as RGB int value. + * + * @param paletteIndex + * The palette index, a non-negative integer. + * @return The RGB color, not null. + */ + public final int getRGBColor(int paletteIndex) { + int result = palette_r[paletteIndex] << 16 | palette_g[paletteIndex] << 8 | palette_b[paletteIndex]; + return result; + } +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/Tile.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/Tile.java new file mode 100644 index 00000000..2ed22c29 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/Tile.java @@ -0,0 +1,261 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import com.wudsn.ide.base.common.NumberFactory; + +public final class Tile { + private TileSet tileSet; + private int column; + private int row; + + private int xOffset; + private int yOffset; + + private Map pixelColorCounts; + private List> linePixelColorCounts; + + private boolean inverseConflict; + + public Tile(TileSet tileSet, int column, int row) { + if (tileSet == null) { + throw new IllegalArgumentException( + "Parameter 'tileSet' must not be null."); + } + if (column < 0) { + throw new IllegalArgumentException( + "Parameter 'column' must not be negative. Specified value is " + + column + "."); + } + if (row < 0) { + throw new IllegalArgumentException( + "Parameter 'row' must not be negative. Specified value is " + + row + "."); + } + this.tileSet = tileSet; + this.column = column; + this.row = row; + + xOffset = column * tileSet.getPixelsPerColumn(); + yOffset = row * tileSet.getPixelsPerRow(); + + pixelColorCounts = new TreeMap(); + linePixelColorCounts = new ArrayList>(tileSet + .getPixelsPerRow()); + + for (int y = 0; y < tileSet.getPixelsPerRow(); y++) { + linePixelColorCounts.add(new TreeMap()); + for (int x = 0; x < tileSet.getPixelsPerColumn(); x++) { + Integer pixelColor = getPixelColor(x, y); + increment(pixelColorCounts, pixelColor); + increment(linePixelColorCounts.get(y), pixelColor); + } + } + } + + private void increment(Map pixelColorCounts, + Integer pixelColorKey) { + if (pixelColorCounts == null) { + throw new IllegalArgumentException( + "Parameter 'pixelColorCounts' must not be null."); + } + if (pixelColorKey == null) { + throw new IllegalArgumentException( + "Parameter 'pixelColorKey' must not be null."); + } + Integer pixelColorCount = pixelColorCounts.get(pixelColorKey); + if (pixelColorCount == null) { + pixelColorCount = NumberFactory.getInteger(1); + } else { + pixelColorCount = NumberFactory.getInteger(pixelColorCount + .intValue() + 1); + } + pixelColorCounts.put(pixelColorKey, pixelColorCount); + } + + public int getColumn() { + return column; + } + + public int getRow() { + return row; + } + + /** + * Gets the pixel color of a pixel in the tile. + * + * @param x + * The relative x position in the tile, a non-negative integer. + * @param y + * The relative x position in the tile, a non-negative integer. + * @return The pixel color, not null. + */ + public Integer getPixelColor(int x, int y) { + try { + return NumberFactory.getInteger(tileSet.getImageData().getPixel( + xOffset + x, yOffset + y)); + } catch (IllegalArgumentException ex) { + // throw new IllegalArgumentException("Cannot access pixel at " + // + xOffset + "+" + x + ", " + yOffset + "+" + y + ".", ex); + return NumberFactory.getInteger(0); + } + } + + public boolean hasPixelColor(Integer pixelColor) { + if (pixelColor == null) { + throw new IllegalArgumentException( + "Parameter 'pixelColor' must not be null."); + } + return getPixelColorCount(pixelColor) > 0; + } + + public int getPixelColorCount(Integer pixelColor) { + if (pixelColor == null) { + throw new IllegalArgumentException( + "Parameter 'pixelColor' must not be null."); + } + Integer pixelColorCount = pixelColorCounts.get(pixelColor); + if (pixelColorCount == null) { + return 0; + } + return pixelColorCount.intValue(); + + } + + /** + * Counts the map of distinct colors used and their count in the tile. + * + * @param ignoredPixelColors + * The array of colors to be ignored during counting or + * null. + * @return The map of distinct colors used and their count, not + * null. + */ + public Map getDistinctPixelColorCounts( + List ignoredPixelColors) { + + if (ignoredPixelColors == null) { + throw new IllegalArgumentException( + "Parameter 'ignoredPixelColors' must not be null."); + } + Map pixelColorCounts; + pixelColorCounts = new TreeMap(); + for (int y = 0; y < tileSet.getPixelsPerRow(); y++) { + for (int x = 0; x < tileSet.getPixelsPerColumn(); x++) { + Integer pixelColor = getPixelColor(x, y); + boolean ignore = false; + if (ignoredPixelColors != null + && ignoredPixelColors.contains(pixelColor)) { + ignore = true; + } + if (!ignore) { + increment(pixelColorCounts, pixelColor); + } + } + } + return pixelColorCounts; + } + + public static Integer getMajorColor(Map pixelColorCounts, + List ignoredPixelColors) { + if (pixelColorCounts == null) { + throw new IllegalArgumentException( + "Parameter 'pixelColorCounts' must not be null."); + } + if (pixelColorCounts.isEmpty()) { + throw new IllegalArgumentException( + "Parameter 'pixelColorCounts' must not be empty."); + } + Integer majorColor; + int majorColorCount; + majorColor = null; + majorColorCount = -1; + for (Map.Entry entry : pixelColorCounts.entrySet()) { + if (ignoredPixelColors == null + || !ignoredPixelColors.contains(entry.getKey())) { + if (entry.getValue().intValue() > majorColorCount) { + majorColor = entry.getKey(); + } + } + } + return majorColor; + } + + public int getLinePixelColorCount(int y, int pixelColor) { + Map pixelColorCounts = linePixelColorCounts.get(y); + Integer pixelColorCount = pixelColorCounts.get(NumberFactory + .getInteger(pixelColor)); + if (pixelColorCount == null) { + return 0; + } + return pixelColorCount.intValue(); + + } + + /** + * Counts the map of distinct colors used and their count in a specific line + * of the tile. + * + * @param y + * The line of the tile, a non-negative integer. + * @param ignoredPixelColors + * The list of colors to be ignored during counting or + * null. + * @return The map of distinct colors used and their count, not + * null. + */ + public Map getDistinctLinePixelColorCounts(int y, + List ignoredPixelColors) { + if (y < 0) { + throw new IllegalArgumentException( + "Parameter 'y' must not be negative, specified value is " + + y + "."); + } + Map pixelColorCounts; + pixelColorCounts = new TreeMap(); + for (int x = 0; x < tileSet.getPixelsPerColumn(); x++) { + Integer pixelColor = getPixelColor(x, y); + boolean ignore = false; + if (ignoredPixelColors != null + && ignoredPixelColors.contains(pixelColor)) { + ignore = true; + + } + if (!ignore) { + increment(pixelColorCounts, pixelColor); + } + } + return pixelColorCounts; + } + + public boolean isInverseConflict() { + return inverseConflict; + } + + public void setInverseConflict(boolean inverseConflict) { + this.inverseConflict = inverseConflict; + + } +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/TileSet.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/TileSet.java new file mode 100644 index 00000000..b57fb7f0 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/TileSet.java @@ -0,0 +1,240 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter; + +import org.eclipse.swt.graphics.ImageData; + +/** + * An image data divided into a rectangle of tiles. + * + * @author Peter Dell + * + */ +public final class TileSet { + + private ImageData imageData; + private int pixelsPerColumn; + private int pixelsPerRow; + + private int columns; + private int rows; + private int paletteSize; + + private Tile[][] tiles; + + /** + * Creates a new tile set. + * + * @param imageData + * The source image data, not null. + * @param pixelsPerColumn + * The number of pixels per column, a positive integer. + * @param pixelsPerRow + * The number of pixels per row, a positive integer. + */ + public TileSet(ImageData imageData, int pixelsPerColumn, int pixelsPerRow) { + if (imageData == null) { + throw new IllegalArgumentException( + "Parameter 'imageData' must not be null."); + } + if (pixelsPerColumn < 1) { + throw new IllegalArgumentException( + "Parameter 'pixelsPerColumn' must be poitive. Specified value is " + + pixelsPerColumn + "."); + } + if (pixelsPerRow < 1) { + throw new IllegalArgumentException( + "Parameter 'pixelsPerRow' must be poitive. Specified value is " + + pixelsPerRow + "."); + } + + this.imageData = imageData; + this.pixelsPerColumn = pixelsPerColumn; + this.pixelsPerRow = pixelsPerRow; + + // Round-up columns and rows + columns = (imageData.width + pixelsPerColumn - 1) / pixelsPerColumn; + rows = (imageData.height + pixelsPerRow - 1) / pixelsPerRow; + + // Create the tiles + tiles = new Tile[rows][]; + for (int r = 0; r < rows; r++) { + tiles[r] = new Tile[columns]; + for (int c = 0; c < columns; c++) { + Tile tile = new Tile(this, c, r); + tiles[r][c] = tile; + } + } + } + + /** + * Gets the source image data. + * + * @return The source image data, not null. + */ + public ImageData getImageData() { + return imageData; + } + + /** + * Gets the number of columns. + * + * @return The number of columns, a positive integer. + */ + public int getColumns() { + return columns; + } + + /** + * Gets the number of rows. + * + * @return The number of rows, a positive integer. + */ + public int getRows() { + return rows; + } + + /** + * Gets the number of pixels per column. + * + * @return The number of pixels per column, a positive integer. + */ + public int getPixelsPerColumn() { + return pixelsPerColumn; + } + + /** + * Gets the number of pixels per row. + * + * @return The number of of pixels per row, a positive integer. + */ + public int getPixelsPerRow() { + return pixelsPerRow; + } + + /** + * Gets the size of the palette. + * + * @return The size of the palette, a positive integer. + */ + public int getPaletteSize() { + return paletteSize; + } + + /** + * Gets the tile a a given location. + * + * @param column + * The column, a non-negative integer + * @param row + * The row, a non-negative integer + * @return The tile, not null. + */ + public Tile getTile(int column, int row) { + if (column < 0) { + throw new IllegalArgumentException( + "Parameter 'column' must not be negative. Specified value is " + + column + "."); + } + if (row < 0) { + throw new IllegalArgumentException( + "Parameter 'row' must not be negative. Specified value is " + + row + "."); + } + return tiles[row][column]; + } + + /** + * Create an image data instance large enough to hold the tiled source + * image. + * + * @return The tile image data, not null. + */ + public ImageData createTiledImageData() { + int width = columns * (pixelsPerColumn + 1) + 1; + int height = rows * (pixelsPerRow + 1) + 1; + ImageData tiledImageData = new ImageData(width, height, + imageData.depth, imageData.palette); + return tiledImageData; + } + + /** + * Draws bounding rectangles around the tiles of the target image data. + * + * @param targetImageData + * The target image data, not null. + * @param gridColor + * The pixel color for coloring the tile grid. + * @param inverseConflictColor + * The pixel color for coloring conflict tiles in the tile grid. + */ + public void drawTileBoundaries(ImageData targetImageData, + Integer gridColor, Integer inverseConflictColor) { + if (targetImageData == null) { + throw new IllegalArgumentException( + "Parameter 'targetImageData' must not be null."); + } + if (gridColor == null) { + throw new IllegalArgumentException( + "Parameter 'gridColor' must not be null."); + } + if (inverseConflictColor == null) { + throw new IllegalArgumentException( + "Parameter 'inverseConflictColor' must not be null."); + } + for (int r = 0; r < rows + 1; r++) { + int ty = r * (pixelsPerRow + 1); + for (int x = 0; x < targetImageData.width; x++) { + targetImageData.setPixel(x, ty, gridColor.intValue()); + } + } + for (int c = 0; c < columns + 1; c++) { + int tx = c * (pixelsPerColumn + 1); + for (int y = 0; y < targetImageData.height; y++) { + targetImageData.setPixel(tx, y, gridColor.intValue()); + } + } + + for (int r = 0; r < rows; r++) { + int ty = r * (pixelsPerRow + 1); + for (int c = 0; c < columns; c++) { + int tx = c * (pixelsPerColumn + 1); + + Tile tile = getTile(c, r); + if (tile.isInverseConflict()) { + for (int x = 0; x < pixelsPerColumn + 1; x++) { + targetImageData.setPixel(tx + x, ty, + inverseConflictColor.intValue()); + targetImageData.setPixel(tx + x, ty + pixelsPerRow + 1, + inverseConflictColor.intValue()); + } + for (int y = 0; y < pixelsPerRow + 1; y++) { + targetImageData.setPixel(tx, ty + y, + inverseConflictColor.intValue()); + targetImageData.setPixel(tx + pixelsPerColumn + 1, ty + + y, inverseConflictColor.intValue()); + + } + } + } + } + + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/apple2/HiresGraphicsConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/apple2/HiresGraphicsConverter.java new file mode 100644 index 00000000..28cf2433 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/apple2/HiresGraphicsConverter.java @@ -0,0 +1,119 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.apple2; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.FilesConverterParameters.SourceFile; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class HiresGraphicsConverter extends LinearBitMapConverter { + + static final int CELL_HEIGHT = 8; + static final int CELL_WIDTH = 7; + + public HiresGraphicsConverter() { + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 8184; // $1ff8 + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + int columns = 40; + int rows = 24; + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_1, null); + setImageSizeAndPalette(data, columns, rows, Palette.HIRES_1, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + data.setImageDataWidth(data.getParameters().getColumns() * CELL_WIDTH); + data.setImageDataHeight(data.getParameters().getRows() * CELL_HEIGHT); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + byte[] bytes = data.getSourceFileBytes(BIT_MAP_FILE); + if (bytes == null) { + return false; + } + + SourceFile sourceFile = data.getParameters() + .getSourceFile(BIT_MAP_FILE); + int offset = sourceFile.getOffset(); + + for (int y1 = 0; y1 < data.getParameters().getRows() * CELL_HEIGHT; y1++) { + int y = y1; + int page = y & 0x7; + int block = ((y >> 3) & 0x7); + int leaf = y >> 6; + int yindex = offset + (page * 1024) + (block * 128) + (leaf * 40); + + int x = 0; + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int xindex = yindex + x1; + if (xindex < bytes.length) { + int b = bytes[xindex]; + for (int i = 0; i < CELL_WIDTH; i++) { + if ((b & (1 << i)) != 0) { + data.setPalettePixel(x, y1, 1); + } + x++; + } + } + + } + } + return true; + + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/apple2/HiresGraphicsConverter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/apple2/HiresGraphicsConverter.js new file mode 100644 index 00000000..58fb83d1 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/apple2/HiresGraphicsConverter.js @@ -0,0 +1,32 @@ +function convertToFileData(data) { + var bytes = []; + var offset = 0; + var page = 0; + var block = 0; + var leaf = 0; + + if ( data.getImageDataWidth() !=280 + || data.getImageDataHeight()!=192 ){ + return; + } + + for (var y = 0; y < data.getImageDataHeight(); y++) { + page = y & 0x7; + block = ((y >> 3) & 0x7); + leaf = y >> 6; + offset = (page*1024) + (block*128) + (leaf*40); + + for (var x = 0; x < data.getImageDataWidth(); x = x + 7) { + var b = 0; + for (var i = 0; i < 7; i++) { + var color; + color = data.getPixel(x + i, y); + if (color != 0) { + b = b | 1 << i; + } + } + bytes[offset++] = b; + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari2600/AsymetricalPlayfieldConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari2600/AsymetricalPlayfieldConverter.java new file mode 100644 index 00000000..544c9ffa --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari2600/AsymetricalPlayfieldConverter.java @@ -0,0 +1,73 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari2600; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.generic.BitMapConverter; +import com.wudsn.ide.gfx.model.Palette; + +public class AsymetricalPlayfieldConverter extends BitMapConverter { + + public AsymetricalPlayfieldConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return false; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + int columns = 5; + int rows = (bytes.length + columns - 1) / columns; + setImageSizeAndPalette(data, columns, rows, Palette.HIRES_1, null); + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns()); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + return false; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari2600/AsymetricalPlayfieldConverter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari2600/AsymetricalPlayfieldConverter.js new file mode 100644 index 00000000..a3c2bd61 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari2600/AsymetricalPlayfieldConverter.js @@ -0,0 +1,40 @@ +function convertToFileData(data) { + var lineHeight = 5; // Height of a single text line + var lineSpacing = 1; // Space between two text lines + var lineFullHeight = lineHeight + lineSpacing; // Full height of a text line + var lines = java.lang.Math.floor((data.getImageDataHeight() + lineHeight) / lineFullHeight); // Number of text lines + var scanLines = lines * lineHeight; + var columnOffsets= [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5]; + var columnBits = [0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80]; + var bytes = []; + var offset = 0; + + for (var l = 0; l < lines; l = l + 1) { + var y = l * lineFullHeight; + for (var m = 0; m < lineHeight; m++) { + var b = [0,0,0,0,0,0]; + for (var x = 0; x < data.getImageDataWidth() && x < 40; x = x + 1) { + var color; + + if (y+m < data.getImageDataHeight()){ + color = data.getPixel(x, y + m); + } else { + color = 0; + } + + if (color != 0) { + var o = columnOffsets[x]; + b[o] = b[o] | columnBits[x]; + } + } + bytes[offset+scanLines*0] = b[0]; + bytes[offset+scanLines*1] = b[1]; + bytes[offset+scanLines*2] = b[2]; + bytes[offset+scanLines*3] = b[3]; + bytes[offset+scanLines*4] = b[4]; + bytes[offset+scanLines*5] = b[5]; + offset =offset + 1; + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteMapper.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteMapper.java new file mode 100644 index 00000000..63174490 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteMapper.java @@ -0,0 +1,41 @@ +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.PaletteMapper; + + +/** + * Copyright (C) 2009 - 2014 Peter + * Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 2 of the License, or (at your option) any later + * version. + * + * WUDSN IDE is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * WUDSN IDE. If not, see . + */ + +/** + * Palette mapper for mapping Atari color values to RGB and back. + * + * @since 1.6.4 + */ +public final class Atari8BitPaletteMapper extends PaletteMapper { + + public Atari8BitPaletteMapper() { + super(256); +// loadPalette("default.act"); + loadPalette("laoo.act"); +// loadPalette("real.act"); + + + } + +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteUtility.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteUtility.java new file mode 100644 index 00000000..e0a8d145 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteUtility.java @@ -0,0 +1,233 @@ +package com.wudsn.ide.gfx.converter.atari8bit; + +/** +* Copyright (C) 2009 - 2014 Peter + * Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 2 of the License, or (at your option) any later + * version. + * + * WUDSN IDE is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * WUDSN IDE. If not, see . + */ + +/** + * Based on the Atari RGB converter by Mark Keates / Wrathchild. See http + * ://www.atariage.com/forums/topic/137075-rgb-to-atari-colors.
+ * See http://de.wikipedia.org/ + * wiki/Lab-Farbraum.
+ * + * @author Mark Keates + * @author Peter Dell + * + * @since 1.6.0 + */ +public class Atari8BitPaletteUtility { + + /** + * TODO Make Atari8BitPaletteUtility real tool/view + */ + static int real_pal[] = { 0x323132, 0x3f3e3f, 0x4d4c4d, 0x5b5b5b, 0x6a696a, + 0x797879, 0x888788, 0x979797, 0xa1a0a1, 0xafafaf, 0xbebebe, + 0xcecdce, 0xdbdbdb, 0xebeaeb, 0xfafafa, 0xffffff, 0x612e00, + 0x6c3b00, 0x7a4a00, 0x885800, 0x94670c, 0xa5761b, 0xb2842a, + 0xc1943a, 0xca9d43, 0xdaad53, 0xe8bb62, 0xf8cb72, 0xffd87f, + 0xffe88f, 0xfff79f, 0xffffae, 0x6c2400, 0x773000, 0x844003, + 0x924e11, 0x9e5d22, 0xaf6c31, 0xbc7b41, 0xcc8a50, 0xd5935b, + 0xe4a369, 0xf2b179, 0xffc289, 0xffcf97, 0xffdfa6, 0xffedb5, + 0xfffdc4, 0x751618, 0x812324, 0x8f3134, 0x9d4043, 0xaa4e50, + 0xb85e60, 0xc66d6f, 0xd57d7f, 0xde8787, 0xed9596, 0xfca4a5, + 0xffb4b5, 0xffc2c4, 0xffd1d3, 0xffe0e1, 0xffeff0, 0x620e71, + 0x6e1b7c, 0x7b2a8a, 0x8a3998, 0x9647a5, 0xa557b5, 0xb365c3, + 0xc375d1, 0xcd7eda, 0xdc8de9, 0xea97f7, 0xf9acff, 0xffbaff, + 0xffc9ff, 0xffd9ff, 0xffe8ff, 0x560f87, 0x611d90, 0x712c9e, + 0x7f3aac, 0x8d48ba, 0x9b58c7, 0xa967d5, 0xb877e5, 0xc280ed, + 0xd090fc, 0xdf9fff, 0xeeafff, 0xfcbdff, 0xffccff, 0xffdbff, + 0xffeaff, 0x461695, 0x5122a0, 0x6032ac, 0x6e41bb, 0x7c4fc8, + 0x8a5ed6, 0x996de3, 0xa87cf2, 0xb185fb, 0xc095ff, 0xcfa3ff, + 0xdfb3ff, 0xeec1ff, 0xfcd0ff, 0xffdfff, 0xffefff, 0x212994, + 0x2d359f, 0x3d44ad, 0x4b53ba, 0x5961c7, 0x686fd5, 0x777ee2, + 0x878ef2, 0x9097fa, 0x96a6ff, 0xaeb5ff, 0xbfc4ff, 0xcdd2ff, + 0xdae3ff, 0xeaf1ff, 0xfafeff, 0x0f3584, 0x1c418d, 0x2c509b, + 0x3a5eaa, 0x486cb7, 0x587bc5, 0x678ad2, 0x7699e2, 0x80a2eb, + 0x8fb2f9, 0x9ec0ff, 0xadd0ff, 0xbdddff, 0xcbecff, 0xdbfcff, + 0xeaffff, 0x043f70, 0x114b79, 0x215988, 0x2f6896, 0x3e75a4, + 0x4d83b2, 0x5c92c1, 0x6ca1d2, 0x74abd9, 0x83bae7, 0x93c9f6, + 0xa2d8ff, 0xb1e6ff, 0xc0f5ff, 0xd0ffff, 0xdeffff, 0x005918, + 0x006526, 0x0f7235, 0x1d8144, 0x2c8e50, 0x3b9d60, 0x4aac6f, + 0x59bb7e, 0x63c487, 0x72d396, 0x82e2a5, 0x92f1b5, 0x9ffec3, + 0xaeffd2, 0xbeffe2, 0xcefff1, 0x075c00, 0x146800, 0x227500, + 0x328300, 0x3f910b, 0x4fa01b, 0x5eae2a, 0x6ebd3b, 0x77c644, + 0x87d553, 0x96e363, 0xa7f373, 0xb3fe80, 0xc3ff8f, 0xd3ffa0, + 0xe3ffb0, 0x1a5600, 0x286200, 0x367000, 0x457e00, 0x538c00, + 0x629b07, 0x70a916, 0x80b926, 0x89c22f, 0x99d13e, 0xa8df4d, + 0xb7ef5c, 0xc5fc6b, 0xd5ff7b, 0xe3ff8b, 0xf3ff99, 0x334b00, + 0x405700, 0x4d6500, 0x5d7300, 0x6a8200, 0x7a9100, 0x889e0f, + 0x98ae1f, 0xa1b728, 0xbac638, 0xbfd548, 0xcee458, 0xdcf266, + 0xebff75, 0xfaff85, 0xffff95, 0x4b3c00, 0x584900, 0x655700, + 0x746500, 0x817400, 0x908307, 0x9f9116, 0xaea126, 0xb7aa2e, + 0xc7ba3e, 0xd5c74d, 0xe5d75d, 0xf2e56b, 0xfef47a, 0xffff8b, + 0xffff9a, 0x602e00, 0x6d3a00, 0x7a4900, 0x895800, 0x95670a, + 0xa4761b, 0xb2832a, 0xc2943a, 0xcb9d44, 0xdaac53, 0xe8ba62, + 0xf8cb73, 0xffd77f, 0xffe791, 0xfff69f, 0xffffaf, }; + + private static class RGB { + public RGB() { + + } + + int r; + int g; + int b; + } + + private static class Lab { + public Lab() { + } + + double L; + double a; + double b; + } + + static double[] calc = new double[256]; + + static RGB[] rgb; + static Lab[] cielab; + static RGB find_rgb; + static Lab find_lab; + + static void RGB2LAB(RGB c, Lab lab) { + double var_R = c.r / 255.0; // R from 0 to 255 + double var_G = c.g / 255.0; // G from 0 to 255 + double var_B = c.b / 255.0; // B from 0 to 255 + double X, Y, Z, var_X, var_Y, var_Z; + + if (var_R > 0.04045) + var_R = Math.pow(((var_R + 0.055) / 1.055), 2.4); + else + var_R = var_R / 12.92; + if (var_G > 0.04045) + var_G = Math.pow(((var_G + 0.055) / 1.055), 2.4); + else + var_G = var_G / 12.92; + if (var_B > 0.04045) + var_B = Math.pow(((var_B + 0.055) / 1.055), 2.4); + else + var_B = var_B / 12.92; + + var_R = var_R * 100.0; + var_G = var_G * 100.0; + var_B = var_B * 100.0; + + // Observer. = 2°, Illuminant = D65 + X = var_R * 0.4124 + var_G * 0.3576 + var_B * 0.1805; + Y = var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722; + Z = var_R * 0.0193 + var_G * 0.1192 + var_B * 0.9505; + + var_X = X / 95.047; // ref_X = 95.047 Observer= 2°, Illuminant= D65 + var_Y = Y / 100.000; // ref_Y = 100.000 + var_Z = Z / 108.883; // ref_Z = 108.883 + + if (var_X > 0.008856) { + var_X = Math.pow(var_X, (1.0 / 3.0)); + } else { + var_X = (7.787 * var_X) + (16.0 / 116.0); + } + if (var_Y > 0.008856) { + var_Y = Math.pow(var_Y, (1.0 / 3.0)); + } else { + var_Y = (7.787 * var_Y) + (16.0 / 116.0); + } + if (var_Z > 0.008856) { + var_Z = Math.pow(var_Z, (1.0 / 3.0)); + } else { + var_Z = (7.787 * var_Z) + (16.0 / 116.0); + } + lab.L = (116.0 * var_Y) - 16.0; + lab.a = 500.0 * (var_X - var_Y); + lab.b = 200.0 * (var_Y - var_Z); + } + + public static final void main(String[] args) { + double Dl, Dc, Dh, C1, C2, a2, b2, m = 0xFFFFFF; + double Sl, Sc, Sh, K1 = 0.045, K2 = 0.015; + int i, j = -1; + + if (args.length == 3) { + find_rgb = new RGB(); + find_lab = new Lab(); + find_rgb.r = Integer.parseInt(args[0]); + find_rgb.g = Integer.parseInt(args[1]); + find_rgb.b = Integer.parseInt(args[2]); + + /* Make an RGB table from pre-computed values */ + rgb = new RGB[256]; + for (i = 0; i < 0x10; i++) { + for (j = 0; j < 0x10; j++) { + int c = real_pal[i * 0x10 + j]; + int ir = (c >> 16) & 255; + int ig = (c >> 8) & 255; + int ib = c & 255; + rgb[i * 16 + j] = new RGB(); + rgb[i * 16 + j].r = ir; + rgb[i * 16 + j].g = ig; + rgb[i * 16 + j].b = ib; + } + } + /* Make an Lab table from the RGB table */ + cielab = new Lab[256]; + for (i = 0; i < 256; i++) { + cielab[i] = new Lab(); + RGB2LAB(rgb[i], cielab[i]); + } + /* What are we looking for */ + RGB2LAB(find_rgb, find_lab); + /* Calc distances */ + for (i = 0; i < 256; i++) { + C1 = Math.sqrt((find_lab.a * find_lab.a) + + (find_lab.b * find_lab.b)); + C2 = Math.sqrt((cielab[i].a * cielab[i].a) + + (cielab[i].b * cielab[i].b)); + Sl = 1.0; + Sc = 1.0 + K1 * C1; + Sh = 1.0 + K2 * C1; + Dl = find_lab.L - cielab[i].L; + Dc = C1 - C2; + a2 = find_lab.a - cielab[i].a; + a2 = a2 * a2; + b2 = find_lab.b - cielab[i].b; + b2 = b2 * b2; + Dh = Math.sqrt(a2 + b2 - (Dc * Dc)); + calc[i] = (Dl / Sl) * (Dl / Sl); + calc[i] += (Dc / Sc) * (Dc / Sc); + calc[i] += (Dh / Sh) * (Dh / Sh); + } + + for (i = 0; i < 256; i++) { + if (calc[i] < m) { + m = calc[i]; + j = i; + } + } + +// System.out.printf("R=%3d G=%3d B=%3d : $%02X Hue = %d Lum = %d\n", +// find_rgb.r, find_rgb.g, find_rgb.b, j, j / 16, j % 16); + } else { + System.out + .printf("Format:rgb2a8 Red Green Blue\n(values between 0 and 255)\n"); + } + + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteUtility2.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteUtility2.java new file mode 100644 index 00000000..4b067210 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitPaletteUtility2.java @@ -0,0 +1,361 @@ +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Rectangle; + +// TODO Class Atari8BitPaletteUtility2 is currently not used +public class Atari8BitPaletteUtility2 { + + private final int PAL_ENTRIES_NO = 256; + private final int BAR_LINES_NO = 16; + private final int BAR_ENTRIES_NO = (PAL_ENTRIES_NO / BAR_LINES_NO); + + static class RGB { + int R, G, B; + + public static RGB FromArgb(int r1, int g1, int b1) { + RGB color = new RGB(); + color.R = r1; + color.G = g1; + color.B = b1; + return color; + } + } + + private RGB[] actual_pal = new RGB[PAL_ENTRIES_NO]; + + class LAB { + public double L; + public double a; + public double b; + } + + private LAB[] cielab = new LAB[PAL_ENTRIES_NO]; + + private int min_y = 0, max_y = 0xf0; + private int colintens = 100; + private int colshift = 30; + + // public int BlackLevel + // { + // get { return min_y; } + // set { min_y = value; CalcPaletteFromSettings(); Highlight = + // highlightColor; } + // } + // + // public int WhiteLevel + // { + // get { return max_y; } + // set { max_y = value; CalcPaletteFromSettings(); Highlight = + // highlightColor; } + // } + // + // public int Saturation + // { + // get { return colintens; } + // set { colintens = value; CalcPaletteFromSettings(); Highlight = + // highlightColor; } + // } + // + // public int ColorShift + // { + // get { return colshift; } + // set { colshift = value; CalcPaletteFromSettings(); Highlight = + // highlightColor; } + // } + + private static int[] real_pal = { 0x323132, 0x3f3e3f, 0x4d4c4d, 0x5b5b5b, + 0x6a696a, 0x797879, 0x888788, 0x979797, 0xa1a0a1, 0xafafaf, + 0xbebebe, 0xcecdce, 0xdbdbdb, 0xebeaeb, 0xfafafa, 0xffffff, + 0x612e00, 0x6c3b00, 0x7a4a00, 0x885800, 0x94670c, 0xa5761b, + 0xb2842a, 0xc1943a, 0xca9d43, 0xdaad53, 0xe8bb62, 0xf8cb72, + 0xffd87f, 0xffe88f, 0xfff79f, 0xffffae, 0x6c2400, 0x773000, + 0x844003, 0x924e11, 0x9e5d22, 0xaf6c31, 0xbc7b41, 0xcc8a50, + 0xd5935b, 0xe4a369, 0xf2b179, 0xffc289, 0xffcf97, 0xffdfa6, + 0xffedb5, 0xfffdc4, 0x751618, 0x812324, 0x8f3134, 0x9d4043, + 0xaa4e50, 0xb85e60, 0xc66d6f, 0xd57d7f, 0xde8787, 0xed9596, + 0xfca4a5, 0xffb4b5, 0xffc2c4, 0xffd1d3, 0xffe0e1, 0xffeff0, + 0x620e71, 0x6e1b7c, 0x7b2a8a, 0x8a3998, 0x9647a5, 0xa557b5, + 0xb365c3, 0xc375d1, 0xcd7eda, 0xdc8de9, 0xea97f7, 0xf9acff, + 0xffbaff, 0xffc9ff, 0xffd9ff, 0xffe8ff, 0x560f87, 0x611d90, + 0x712c9e, 0x7f3aac, 0x8d48ba, 0x9b58c7, 0xa967d5, 0xb877e5, + 0xc280ed, 0xd090fc, 0xdf9fff, 0xeeafff, 0xfcbdff, 0xffccff, + 0xffdbff, 0xffeaff, 0x461695, 0x5122a0, 0x6032ac, 0x6e41bb, + 0x7c4fc8, 0x8a5ed6, 0x996de3, 0xa87cf2, 0xb185fb, 0xc095ff, + 0xcfa3ff, 0xdfb3ff, 0xeec1ff, 0xfcd0ff, 0xffdfff, 0xffefff, + 0x212994, 0x2d359f, 0x3d44ad, 0x4b53ba, 0x5961c7, 0x686fd5, + 0x777ee2, 0x878ef2, 0x9097fa, 0x96a6ff, 0xaeb5ff, 0xbfc4ff, + 0xcdd2ff, 0xdae3ff, 0xeaf1ff, 0xfafeff, 0x0f3584, 0x1c418d, + 0x2c509b, 0x3a5eaa, 0x486cb7, 0x587bc5, 0x678ad2, 0x7699e2, + 0x80a2eb, 0x8fb2f9, 0x9ec0ff, 0xadd0ff, 0xbdddff, 0xcbecff, + 0xdbfcff, 0xeaffff, 0x043f70, 0x114b79, 0x215988, 0x2f6896, + 0x3e75a4, 0x4d83b2, 0x5c92c1, 0x6ca1d2, 0x74abd9, 0x83bae7, + 0x93c9f6, 0xa2d8ff, 0xb1e6ff, 0xc0f5ff, 0xd0ffff, 0xdeffff, + 0x005918, 0x006526, 0x0f7235, 0x1d8144, 0x2c8e50, 0x3b9d60, + 0x4aac6f, 0x59bb7e, 0x63c487, 0x72d396, 0x82e2a5, 0x92f1b5, + 0x9ffec3, 0xaeffd2, 0xbeffe2, 0xcefff1, 0x075c00, 0x146800, + 0x227500, 0x328300, 0x3f910b, 0x4fa01b, 0x5eae2a, 0x6ebd3b, + 0x77c644, 0x87d553, 0x96e363, 0xa7f373, 0xb3fe80, 0xc3ff8f, + 0xd3ffa0, 0xe3ffb0, 0x1a5600, 0x286200, 0x367000, 0x457e00, + 0x538c00, 0x629b07, 0x70a916, 0x80b926, 0x89c22f, 0x99d13e, + 0xa8df4d, 0xb7ef5c, 0xc5fc6b, 0xd5ff7b, 0xe3ff8b, 0xf3ff99, + 0x334b00, 0x405700, 0x4d6500, 0x5d7300, 0x6a8200, 0x7a9100, + 0x889e0f, 0x98ae1f, 0xa1b728, 0xbac638, 0xbfd548, 0xcee458, + 0xdcf266, 0xebff75, 0xfaff85, 0xffff95, 0x4b3c00, 0x584900, + 0x655700, 0x746500, 0x817400, 0x908307, 0x9f9116, 0xaea126, + 0xb7aa2e, 0xc7ba3e, 0xd5c74d, 0xe5d75d, 0xf2e56b, 0xfef47a, + 0xffff8b, 0xffff9a, 0x602e00, 0x6d3a00, 0x7a4900, 0x895800, + 0x95670a, 0xa4761b, 0xb2832a, 0xc2943a, 0xcb9d44, 0xdaac53, + 0xe8ba62, 0xf8cb73, 0xffd77f, 0xffe791, 0xfff69f, 0xffffaf, }; + + private int highlightIndex = -1; + + + // public short A8Hue + // { + // get { return (short)(highlightIndex >> 4); } + // } + // + // public short A8Saturation + // { + // get { return (short)(highlightIndex & 15); } + // } + + + public int CalcHighlightLAB(RGB c) { + double[] calc = new double[PAL_ENTRIES_NO]; + double l2, a2, b2, m = 0xFFFFFF; + int i, j = -1; + LAB lab = new LAB(); + + log("Looking for: R=" + c.R + ", G=" + c.G + ", B=" + c.B); + RGB2LAB(c, lab); + log("Looking for: L=" + lab.L + ", a=" + lab.a + ", b=" + lab.b); + + for (i = 0; i < PAL_ENTRIES_NO; i++) { + l2 = lab.L - cielab[i].L; + l2 = l2 * l2; + a2 = lab.a - cielab[i].a; + a2 = a2 * a2; + b2 = lab.b - cielab[i].b; + b2 = b2 * b2; + calc[i] = l2 + a2 + b2; + } + + for (i = 0; i < PAL_ENTRIES_NO; i++) { + log("Distance to: L=" + cielab[i].L + ", a=" + cielab[i].a + ", b=" + + cielab[i].b + " is " + calc[i]); + if (calc[i] < m) { + m = calc[i]; + j = i; + log(" : New minimum!"); + } else if (calc[i] == m) { + log(" : Equal min!"); + } else { + log(""); + } + } + + log("Closest Color: m=" + m + " (R=" + actual_pal[j].R + ", G=" + + actual_pal[j].G + ", B=" + actual_pal[j].B + ")"); + + return j; + } + + public int CalcHighlightRGB(RGB c) { + long[] calc = new long[PAL_ENTRIES_NO]; + long r2, g2, b2, m = 0xFFFFFF, mg = 0xFFFFFF; + int i, j = -1, k = -1; + + log("Looking for: R=" + c.R + ", G=" + c.G + ", B=" + c.B); + for (i = 0; i < PAL_ENTRIES_NO; i++) { + // (R-r)*(R-r) + (G-g)*(G-g) + (B-b)*(B-b) + r2 = c.R - actual_pal[i].R; + r2 = r2 * r2; + g2 = c.G - actual_pal[i].G; + g2 = g2 * g2; + b2 = c.B - actual_pal[i].B; + b2 = b2 * b2; + // calc[i] = (((512+rm)*r2)>>8) + 4*g2 + (((767-rm)*b2)>>8); + calc[i] = (2 * r2) + (4 * g2) + (3 * b2); + } + + for (i = 0; i < 16; i++) { + log("Distance to: R=" + actual_pal[i].R + ", G=" + actual_pal[i].G + + ", B=" + actual_pal[i].B + " is " + calc[i]); + if (calc[i] < mg) { + mg = calc[i]; + k = i; + log(" : New minimum!"); + } else if (calc[i] == mg) { + log(" : Equal min!"); + } else { + log(""); + } + } + + for (i = 16; i < 256; i++) { + log("Distance to: R=" + actual_pal[i].R + ", G=" + actual_pal[i].G + + ", B=" + actual_pal[i].B + " is " + calc[i]); + if (calc[i] < m) { + m = calc[i]; + j = i; + log(" : New minimum!"); + } else if (calc[i] == m) { + log(" : Equal min!"); + } else { + log(""); + } + } + + log("Closest Grey: mg=" + mg + " (R=" + actual_pal[k].R + ", G=" + + actual_pal[k].G + ", B=" + actual_pal[k].B + ")"); + log("Closest Color: m=" + m + " (R=" + actual_pal[j].R + ", G=" + + actual_pal[j].G + ", B=" + actual_pal[j].B + ")"); + + return j; // (mg < m) ? k : j; + } + + private void log(String string) { + System.out.println(string); + + } + + void CalcPaletteFromSettings() { + int i, j; + /* Make an RGB table from computed values */ + for (i = 0; i < 0x10; i++) { + int r, b; + double angle; + + if (i == 0) { + r = b = 0; + } else { + angle = Math.PI * (i * (1.0 / 7) - colshift * 0.01); + r = (int) (Math.cos(angle) * colintens); + b = (int) (Math.cos(angle - Math.PI * (2.0 / 3)) * colintens); + } + for (j = 0; j < 0x10; j++) { + int y, r1, g1, b1; + + y = (max_y * j + min_y * (0xf - j)) / 0xf; + r1 = y + r; + g1 = y - r - b; + b1 = y + b; + if (r1 > 0xff) + r1 = 0xff; + if (r1 < 0) + r1 = 0; + if (g1 > 0xff) + g1 = 0xff; + if (g1 < 0) + g1 = 0; + if (b1 > 0xff) + b1 = 0xff; + if (b1 < 0) + b1 = 0; + actual_pal[i * 16 + j] = RGB.FromArgb(r1, g1, b1); + } + } + } + + public void AssignPalette(int[] new_pal) { + for (int i = 0; i < actual_pal.length; i++) { + int c = new_pal[i]; + int r = (c >> 16) & 255; + int g = (c >> 8) & 255; + int b = c & 255; + actual_pal[i] = RGB.FromArgb(r, g, b); + } + CalcLAB(); + } + + private void RGB2LAB(RGB c, LAB lab) { + double var_R = c.R / 255.0; // R from 0 to 255 + double var_G = c.G / 255.0; // G from 0 to 255 + double var_B = c.B / 255.0; // B from 0 to 255 + + if (var_R > 0.04045) + var_R = Math.pow(((var_R + 0.055) / 1.055), 2.4); + else + var_R = var_R / 12.92; + if (var_G > 0.04045) + var_G = Math.pow(((var_G + 0.055) / 1.055), 2.4); + else + var_G = var_G / 12.92; + if (var_B > 0.04045) + var_B = Math.pow(((var_B + 0.055) / 1.055), 2.4); + else + var_B = var_B / 12.92; + + var_R = var_R * 100.0; + var_G = var_G * 100.0; + var_B = var_B * 100.0; + + // Observer. = 2°, Illuminant = D65 + double X = var_R * 0.4124 + var_G * 0.3576 + var_B * 0.1805; + double Y = var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722; + double Z = var_R * 0.0193 + var_G * 0.1192 + var_B * 0.9505; + + double var_X = X / 95.047; // ref_X = 95.047 Observer= 2°, Illuminant= + // D65 + double var_Y = Y / 100.000; // ref_Y = 100.000 + double var_Z = Z / 108.883; // ref_Z = 108.883 + + if (var_X > 0.008856) + var_X = Math.pow(var_X, (1.0 / 3.0)); + else + var_X = (7.787 * var_X) + (16.0 / 116.0); + if (var_Y > 0.008856) + var_Y = Math.pow(var_Y, (1.0 / 3.0)); + else + var_Y = (7.787 * var_Y) + (16.0 / 116.0); + if (var_Z > 0.008856) + var_Z = Math.pow(var_Z, (1.0 / 3.0)); + else + var_Z = (7.787 * var_Z) + (16.0 / 116.0); + + lab.L = (116.0 * var_Y) - 16.0; + lab.a = 500.0 * (var_X - var_Y); + lab.b = 200.0 * (var_Y - var_Z); + } + + private void CalcLAB() { + for (int i = 0; i < PAL_ENTRIES_NO; i++) { + RGB2LAB(actual_pal[i], cielab[i]); + } + } + + public Atari8BitPaletteUtility2() { + AssignPalette(real_pal); + } + + public void MyColorView_Paint(GC gc) { + int width=100; + int height = 100; + + int nWidth = (width - BAR_ENTRIES_NO) / BAR_ENTRIES_NO; + int nHeight = (height - BAR_LINES_NO) / BAR_LINES_NO; + + int nOffsetX = (width - (nWidth + 1) * BAR_ENTRIES_NO) / 3 + 1; + int nOffsetY = (height - (nHeight + 1) * BAR_LINES_NO) / 3 + 1; + + for (int i = 0; i < BAR_LINES_NO; i++) { + for (int j = 0; j < BAR_ENTRIES_NO; j++) { + int offset = i * BAR_ENTRIES_NO + j; + Rectangle rect = new Rectangle(nOffsetX + j * nWidth + j, + nOffsetY + i * nHeight + i, nWidth, nHeight); +// gc.setForeground(actual_pal[offset]); + gc.fillRectangle(rect); + + if (offset == highlightIndex) { + rect = new Rectangle(rect.x - 1, + rect.y - 1, rect.width + 1, + rect.height + 1); +// gc.setForeground(Color.BLACK); + gc.fillRectangle(rect); + } + } + } + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitUtility.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitUtility.java new file mode 100644 index 00000000..47a4300b --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/Atari8BitUtility.java @@ -0,0 +1,299 @@ +package com.wudsn.ide.gfx.converter.atari8bit; + +/** +* Copyright (C) 2009 - 2014 Peter + * Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 2 of the License, or (at your option) any later + * version. + * + * WUDSN IDE is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * WUDSN IDE. If not, see . + */ + +/** + * Utility class for Atari 8-bit specifics. + * + * @since 1.6.0 + */ +public final class Atari8BitUtility { + + /** + * Mapping of the 4 bit pixel values to the corresponding color register. + * Make sure not to modify contents of this array. + */ + public final static int[] GRAPHICS_10_REGISTERS = { 0, 1, 2, 3, 4, 5, 6, 7, + 8, 8, 8, 8, 4, 5, 6, 7 }; + + /** + * Creation is private. + * + * @since 1.6.0 + */ + private Atari8BitUtility() { + + } + + /** + * Gets a word stored lo/hi order. + * + * @param bytes + * The byte array, not empty and not null. + * @param offset + * The offset within the byte array, a non-negative integer. + * @return The length of the block header, a non-negative integer. + * + * @since 1.6.0 + */ + public static int getWord(byte[] bytes, int offset) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return (bytes[offset] & 0xff) | ((bytes[offset + 1] & 0xff) << 8); + } + + /** + * Gets the length of a binary COM block header within a byte array. + * + * @param bytes + * The byte array, may be empty, not null. + * @param offset + * The offset within the byte array, a non-negative integer. + * @return The length of the block header or -1 if there is no + * valid block at the given offset. + * + * @since 1.6.0 + */ + public static int getLengthFromBinaryHeader(byte[] bytes, int offset) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + if (offset < 0) { + throw new IllegalArgumentException( + "Parameter 'offset' must not be negative, specified value is " + + offset + "."); + } + if (bytes.length >= offset + 6 && (bytes[offset + 0] & 0xff) == 0xff + && (bytes[offset + 1] & 0xff) == 0xff) { + int startAddress = getWord(bytes, offset + 2); + int endAddress = getWord(bytes, offset + 4); + int length = endAddress - startAddress + 1; + return length; + } + return -1; + } + + /** + * Unpack a Koala Painter compressed picture. + * + * @param data + * The byte array with the packed data, may be empty, not + * null. + * @param dataOffset + * The offset within data to start unpacking, a non-negative + * integer. + * @param dataLength + * The length of the data to be unpacked, a positive integer. + * @param cprtype + * The CPR packing type, either 0,1 or 2. + * @param unpackedData + * The byte array for the unpack data, must be 7680 bytes long. + * @return true if the data was unpacked successfully, + * false otherwise. + * + * @since 1.6.0 + */ + public static boolean unpackKoala(byte[] data, int dataOffset, + int dataLength, int cprtype, byte[] unpackedData) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (dataOffset < 0) { + throw new IllegalArgumentException( + "Parameter 'dataOffset' must not be negative. Specified value is " + + dataOffset + "."); + } + if (dataLength < 1) { + throw new IllegalArgumentException( + "Parameter 'dataLength' must be positive. Specified value is " + + dataLength + "."); + } + int i; + int d; + switch (cprtype) { + case 0: + if (dataLength != 7680) { + return false; + } + System.arraycopy(data, dataOffset, unpackedData, 0, 7680); + return true; + case 1: + case 2: + break; + default: + return false; + } + + i = 0; + d = dataOffset; + int dataEnd = d + dataLength; + for (;;) { + int c; + int len; + int b; + c = data[d++] & 0xff; + if (d > dataEnd) { + return false; + } + len = c & 0x7f; + if (len == 0) { + int h; + h = data[d++] & 0xff; + if (d > dataEnd) { + return false; + } + len = data[d++] & 0xff; + + if (d > dataEnd) { + return false; + } + len += h << 8; + if (len == 0) { + return false; + } + } + + b = -1; + do { + /* + * get byte of uncompressed block or if starting RLE block + */ + if (c >= 0x80 || b < 0) { + b = data[d++] & 0xff; + if (d > dataEnd) { + return false; + } + } + unpackedData[i] = (byte) b; + /* return if last byte written */ + if (i >= 7679) { + return true; + } + if (cprtype == 2) { + i++; + } else { + i += 80; + if (i >= 7680) { + /* + * if in line 192, back to odd lines in the same column; + * if in line 193, go to even lines in the next column + */ + i -= (i < 7720) ? 191 * 40 : 193 * 40 - 1; + } + } + } while (--len > 0); + } + } + + /** + * Unpack a compressed CIN picture. + * + * @param data + * The byte array with the packed data, may be empty, not + * null. + * @param dataOffset + * The offset within data to start unpacking, a non-negative + * integer. + * @param dataLength + * The length of the data to be unpacked, a positive integer. + * @param step + * The number of "columns", a non-negative integer. + * @param count + * The number of "lines", a non-negative integer. + * @param unpackedData + * The byte array for the unpack data, must be 7680 bytes long. + * @param unpackedDataOffset + * The offset within unpackedData to start unpacking, a + * non-negative integer. + * @return true if the data was unpacked successfully, + * false otherwise. + * + * @since 1.6.0 + */ + public static boolean unpackCCI(byte data[], int dataOffset, + int dataLength, int step, int count, byte unpackedData[], + int unpackedDataOffset) { + int i = 0; + int d = 2; + int size = step * count; + int block_count = getWord(data, dataOffset); + while (block_count > 0) { + int c; + int len; + int b; + if (d > dataLength) { + return false; + } + c = data[dataOffset + d++] & 0xff; + len = (c & 0x7f) + 1; + b = -1; + do { + /* + * get byte if uncompressed block or if starting RLE block + */ + if (c < 0x80 || b < 0) { + if (d > dataLength) { + return false; + } + b = data[dataOffset + d++] & 0xff; + } + unpackedData[unpackedDataOffset + i] = (byte) b; + /* return if last byte written */ + if (i >= size - 1) { + return true; + } + i += step; + if (i >= size) { + i -= size - 1; + } + } while (--len > 0); + block_count--; + } + if (d == dataLength) { + return true; + } + return false; + } + + /** + * Determines if a byte array represents a valid Atari charset. + * + * @param bytes + * The byte array, may be empty, not null. + * @return true if the byte array represents a valid Atari + * charset, false otherwise. + * + * @since 1.6.0 + */ + public static boolean isAtariCharset(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 1024 + || (bytes.length == 1024 + 6 && Atari8BitUtility + .getLengthFromBinaryHeader(bytes, 0) == 1024); + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/CharMapGraphics12Converter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/CharMapGraphics12Converter.java new file mode 100644 index 00000000..c264e672 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/CharMapGraphics12Converter.java @@ -0,0 +1,308 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import org.eclipse.swt.graphics.ImageData; + +import com.wudsn.ide.base.common.NumberFactory; +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.ImageConverterData; +import com.wudsn.ide.gfx.converter.InverseBlock; +import com.wudsn.ide.gfx.converter.InverseBlockList; +import com.wudsn.ide.gfx.converter.Tile; +import com.wudsn.ide.gfx.converter.TileSet; +import com.wudsn.ide.gfx.converter.c64.C64Utility; +import com.wudsn.ide.gfx.converter.generic.CharMapConverter; +import com.wudsn.ide.gfx.converter.generic.CharMapMultiColorConverter; + +public class CharMapGraphics12Converter extends + CharMapMultiColorConverter { + + private static final Integer PF1 = NumberFactory.getInteger(1); + private static final Integer PF2 = NumberFactory.getInteger(2); + private static final Integer PF3 = NumberFactory.getInteger(3); + + public CharMapGraphics12Converter() { + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (8 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (8 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + return false; + + } + + + public static void convertToFileData(ImageConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + int pixelPerColumn = 4; + int pixelPerRow = 8; + + TileSet tileSet; + tileSet = new TileSet(data.getImageData(), pixelPerColumn, pixelPerRow); + + int screenWidth = 48; + int rowsPerCharset = 3; + + // If the actual image is larger that the screen with, it cannot be + // processed.. + if (tileSet.getColumns() > screenWidth) { + data.setTargetImageData(null); + } + + // If the actual image is smaller that the screen with, it shall be + // centered. + int screenOffset = (screenWidth - tileSet.getColumns()) / 2; + + boolean effect = data.getParameters().getConverterId() + .equals(CharMapGraphics12Converter.class.getName()); + + int charSets = (tileSet.getRows() + rowsPerCharset - 1) + / rowsPerCharset; + byte[] screenBuffer = new byte[tileSet.getRows() * screenWidth]; + byte[] charSetBuffer = new byte[1024 * charSets]; + + Integer gridColor = C64Utility.PINK; + Integer inverseConflictColor = C64Utility.YELLOW; + + ImageData targetImageData = tileSet.createTiledImageData(); + + int screenCharacter = 0; + int charSetCount = -1; + for (int r = 0; r < tileSet.getRows(); r++) { + if (r % rowsPerCharset == 0) { + charSetCount++; + int charSetBufferOffset = charSetCount * 1024; + for (int i = 0; i < pixelPerRow; i++) { + charSetBuffer[charSetBufferOffset + i] = (byte) 0x55; + } + screenCharacter = 1; + + } + + for (int c = 0; c < tileSet.getColumns(); c++) { + + // Create and analyze tile + Tile tile = tileSet.getTile(c, r); + + Map pixelMapping; + List ignoredPixelColors; + InverseBlockList inverseBlockList; + pixelMapping = new TreeMap(); + ignoredPixelColors = new ArrayList(); + inverseBlockList = new InverseBlockList(); + + // TODO Make hard coded mapping real parameters + if (System.getProperty("user.name").equals("d025328")) { + if (r < 10 || r > 19) { + getTileMapping1(pixelMapping, ignoredPixelColors, + inverseBlockList); + } else { + + getTileMapping2(pixelMapping, ignoredPixelColors, + inverseBlockList); + } + } + + InverseBlock inverseBlock; + inverseBlock = inverseBlockList.getInverseBlock(c, r); + + int inverseCharacter = 0x00; + Integer inverseColor; + if (inverseBlock != null) { + inverseColor = inverseBlock.getInverseColor(); + + if (tile.hasPixelColor(inverseColor)) { + // Collect all mappings which map to PF3. + List pf3colors; + pf3colors = new ArrayList(); + for (Map.Entry entry : pixelMapping + .entrySet()) { + if (entry.getValue().equals(PF3)) { + pf3colors.add(entry.getKey()); + } + } + + // Set inverse color to PF3 which becomes PF4 using the + // inverse + pixelMapping.put(inverseColor, PF3); + + for (Integer pf3Color : pf3colors) { + if (tile.hasPixelColor(pf3Color)) { + tile.setInverseConflict(true); + break; + } + } + if (!tile.isInverseConflict()) { + // No conflict + ignoredPixelColors.add(inverseColor); + inverseCharacter = 0x80; + } else { + if (inverseBlock.isInverseIfConflict()) { + inverseCharacter = 0x80; + } else { + inverseCharacter = 0x00; + } + } + } + } else { + inverseColor = null; + } + + screenBuffer[r * screenWidth + c + screenOffset] = (byte) (screenCharacter + inverseCharacter); + int charSetBufferOffset = charSetCount * 1024 + 8 + * (screenCharacter & 0x7f); + screenCharacter++; + + // Draw/copy tile. + Map pixelColorCounts = tile + .getDistinctPixelColorCounts(ignoredPixelColors); + + Integer lastRowMajorColor = null; + + for (int r1 = 0; r1 < pixelPerRow; r1++) { + int my = r * (pixelPerRow + 1) + r1 + 1; + + Map rowPixelColorCounts = tile + .getDistinctLinePixelColorCounts(r1, + ignoredPixelColors); + + int charSetByte = 0; + for (int c1 = 0; c1 < pixelPerColumn; c1++) { + int mx = c * (pixelPerColumn + 1) + c1 + 1; + + Integer color = tile.getPixelColor(c1, r1); + + Integer pixelBits = pixelMapping.get(color); + + if (effect) { + if (pixelColorCounts.size() == 0) { + color = C64Utility.BLACK; + } else if (pixelColorCounts.size() == 1) { + color = Tile.getMajorColor(pixelColorCounts, + ignoredPixelColors); + } else if (rowPixelColorCounts.size() == 0) { + color = lastRowMajorColor; + } else if (rowPixelColorCounts.size() == 1) { + color = Tile.getMajorColor(rowPixelColorCounts, + ignoredPixelColors); + lastRowMajorColor = color; + } + + if (color == null) { + color = C64Utility.BLACK; + } + if (color == inverseColor) { + color = inverseConflictColor; + } + } + + targetImageData.setPixel(mx, my, color.intValue()); + charSetByte = (charSetByte << 2); + if (pixelBits != null) { + charSetByte |= pixelBits.intValue(); + } + } + charSetBuffer[charSetBufferOffset + r1] = (byte) charSetByte; + } + } + + tileSet.drawTileBoundaries(targetImageData, gridColor, + inverseConflictColor); + } + + data.setTargetFileBytes(CharMapConverter.CHAR_SET_FILE, charSetBuffer); + data.setTargetFileBytes(CharMapConverter.CHAR_MAP_FILE, screenBuffer); + + data.setTargetImageData(targetImageData); + } + + private static void getTileMapping2(Map pixelMapping, + List ignoredPixelColors, InverseBlockList inverseBlockList) { + pixelMapping.put(C64Utility.BLACK, PF1); + pixelMapping.put(C64Utility.WHITE, PF2); + pixelMapping.put(C64Utility.RED, PF3); + pixelMapping.put(C64Utility.LIGHT_GREEN, PF3); + + ignoredPixelColors.add(C64Utility.BLACK); + ignoredPixelColors.add(C64Utility.WHITE); + // ignoredPixelColors.add(C64Utility.DARK_GRAY); + ignoredPixelColors.add(C64Utility.LIGHT_GREEN); + + // Blue floor + inverseBlockList.add(0, 39, 8, 19, C64Utility.LIGHT_BLUE, true); + + // Brown Ship + inverseBlockList.add(16, 18, 5, 7, C64Utility.BROWN, true); + // Blue Planet + inverseBlockList.add(0, 39, 0, 6, C64Utility.LIGHT_BLUE, true); + + // Cybernoid + // inverseBlockList.add(0, + // 39, 8, + // 19, + // C64Utility.LIGHT_RED); + // // Red + + // Yellow Explosion + inverseBlockList.add(4, 11, 20, 24, C64Utility.BROWN, false); + } + + private static void getTileMapping1(Map pixelMapping, + List ignoredPixelColors, InverseBlockList inverseBlockList) { + pixelMapping.put(C64Utility.BLACK, PF1); + pixelMapping.put(C64Utility.WHITE, PF2); + pixelMapping.put(C64Utility.DARK_GRAY, PF3); + + ignoredPixelColors.add(C64Utility.BLACK); + ignoredPixelColors.add(C64Utility.WHITE); + ignoredPixelColors.add(C64Utility.DARK_GRAY); + + // Brown Ship + inverseBlockList.add(16, 18, 5, 7, C64Utility.BROWN, true); + // Blue Planet + inverseBlockList.add(0, 39, 0, 6, C64Utility.LIGHT_BLUE, true); + + // Cybernoid + inverseBlockList.add(0, 39, 8, 19, C64Utility.LIGHT_RED, false); + + // Yellow Explosion + inverseBlockList.add(4, 11, 20, 24, C64Utility.BROWN, true); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/CharMapGraphics12Converter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/CharMapGraphics12Converter.js new file mode 100644 index 00000000..75e6ba6a --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/CharMapGraphics12Converter.js @@ -0,0 +1,4 @@ +function convertToFileData(data) { + // This is not yet implemented + // com.wudsn.ide.gfx.converter.atari8bit.CharMapGraphics12Converter.convertToFileData(data); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAP3Converter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAP3Converter.java new file mode 100644 index 00000000..c65b00d7 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAP3Converter.java @@ -0,0 +1,101 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; + +public class LinearBitMapAP3Converter extends LinearBitMapConverter { + + public LinearBitMapAP3Converter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 15872; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + setImageSizeAndPalette(data, 40, 192, Palette.TRUE_COLOR, null); + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 2); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int columns = data.getParameters().getColumns(); + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + + int offset1 = 8192; + int offset2 = 0; + int xpixels = 2; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1 = y1 + 1) { + for (int x1 = 0; x1 < columns; x1++) { + int c = data.getSourceFileByte(BIT_MAP_FILE, offset1++); + if (c < 0) { + return true; + } + int b = data.getSourceFileByte(BIT_MAP_FILE, offset2++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 2; x2++) { + int x = x1 * xpixels + x2; + + int color = (c & mask_4bit[x2]) >>> shift_4bit[x2]; + int brightness = (b & mask_4bit[x2]) >>> shift_4bit[x2]; + int atariColor = color << 4 | brightness; + int directColor = paletteMapper.getRGBColor(atariColor); + data.setDirectPixel(x, y1, directColor); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPACConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPACConverter.java new file mode 100644 index 00000000..87f6f65f --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPACConverter.java @@ -0,0 +1,98 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; + +public class LinearBitMapAPACConverter extends LinearBitMapConverter { + + public LinearBitMapAPACConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException("Parameter 'bytes' must not be null."); + } + return bytes.length > 40 && bytes.length % 40 == 0; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException("Parameter 'bytes' must not be null."); + } + setImageSizeAndPalette(data, 40, (bytes.length + 40 - 1) / 40, Palette.TRUE_COLOR, null); + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 2); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + + int columns = data.getParameters().getColumns(); + int rows = data.getParameters().getRows(); + int offset1 = 0; + int offset2 = columns; + int xpixels = 2; + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + + for (int y1 = 0; y1 < rows; y1 = y1 + 1) { + for (int x1 = 0; x1 < columns; x1++) { + int c = data.getSourceFileByte(BIT_MAP_FILE, offset1++); + if (c < 0) { + return true; + } + int b = data.getSourceFileByte(BIT_MAP_FILE, offset2++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 2; x2++) { + int x = x1 * xpixels + x2; + + int color = (c & mask_4bit[x2]) >>> shift_4bit[x2]; + int brightness = (b & mask_4bit[x2]) >>> shift_4bit[x2]; + int atariColor = color << 4 | brightness; + int directColor = paletteMapper.getRGBColor(atariColor); + data.setDirectPixel(x, y1, directColor); + } + + } + offset1 = offset1 + columns; + offset2 = offset2 + columns; + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPACConverter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPACConverter.js new file mode 100644 index 00000000..73fd38f1 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPACConverter.js @@ -0,0 +1,14 @@ +function convertToFileData(data) { + var bpsl = (data.getImageDataWidth() + 1) / 2; + var bytes = [] + var offset = 0; + for (var y = 0; y < data.getImageDataHeight(); y++) { + for (var x = 0; x < data.getImageDataWidth(); x = x + 2) { + var c1 = data.getPixelRGB(x, y); + var c2 = data.getPixelRGB(x + 1, y); + var b = c1 << 4 | c2; + bytes[offset++] = b; + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPCConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPCConverter.java new file mode 100644 index 00000000..e4a6c4c7 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapAPCConverter.java @@ -0,0 +1,105 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; + +public class LinearBitMapAPCConverter extends LinearBitMapConverter { + + public LinearBitMapAPCConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + // 7680 bytes of bitmap, optionally 40 bytes of text in ATASCII screen + // code + return bytes.length == 7680 || bytes.length == 7680 + 40; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + setImageSizeAndPalette(data, 40, 96, Palette.TRUE_COLOR, null); + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 2); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int columns = data.getParameters().getColumns(); + + int offset1 = 0; + int offset2 = columns; + int xpixels = 2; + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1 = y1 + 1) { + for (int x1 = 0; x1 < columns; x1++) { + int c = data.getSourceFileByte(BIT_MAP_FILE, offset1++); + if (c < 0) { + return true; + } + int b = data.getSourceFileByte(BIT_MAP_FILE, offset2++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 2; x2++) { + int x = x1 * xpixels + x2; + + int color = (c & mask_4bit[x2]) >>> shift_4bit[x2]; + int brightness = (b & mask_4bit[x2]) >>> shift_4bit[x2]; + int atariColor = color << 4 | brightness; + int directColor = paletteMapper.getRGBColor(atariColor); + data.setDirectPixel(x, y1, directColor); + } + + } + offset1 = offset1 + columns; + offset2 = offset2 + columns; + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapCINConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapCINConverter.java new file mode 100644 index 00000000..26e422b3 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapCINConverter.java @@ -0,0 +1,195 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.FilesConverterParameters.SourceFile; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; + +/** + * Converter for CCI and CIN files. + * + * @author Peter Dell + * + * @since 1.6.0 + */ +public class LinearBitMapCINConverter extends LinearBitMapConverter { + + public LinearBitMapCINConverter() { + + } + + private boolean isCIN(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 16384; + } + + private boolean isCCI(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length > 7 && bytes[0] == 'C' && bytes[1] == 'I' + && bytes[2] == 'N' && bytes[3] == ' ' && bytes[4] == '1' + && bytes[5] == '.' && bytes[6] == '2' && bytes[7] == ' '; + } + + private boolean unpackCCI(byte[] bytes, int offset, byte[] unpackedImage) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + if (offset < 0) { + throw new IllegalArgumentException( + "Parameter 'offset' must not be negative. Specified value is " + + offset + "."); + } + if (unpackedImage == null) { + throw new IllegalArgumentException( + "Parameter 'unpackedImage' must not be null."); + } + // Compressed even lines of graphics 15 frame + int dataOffset = offset + 8; + int dataLength = Atari8BitUtility.getWord(bytes, dataOffset); + if (!Atari8BitUtility.unpackCCI(bytes, dataOffset + 2, dataLength, 80, 96, + unpackedImage, 0)) { + return false; + } + + // Compressed odd lines of graphics 15 frame + dataOffset += 2 + dataLength; + dataLength = Atari8BitUtility.getWord(bytes, dataOffset); + if (!Atari8BitUtility.unpackCCI(bytes, dataOffset + 2, dataLength, 80, 96, + unpackedImage, 40)) { + return false; + } + + // Compressed graphics 11 + dataOffset += 2 + dataLength; + dataLength = Atari8BitUtility.getWord(bytes, dataOffset); + if (!Atari8BitUtility.unpackCCI(bytes, dataOffset + 2, dataLength, 40, + 192, unpackedImage, 7680)) { + return false; + } + + /* compressed color values for gr15 */ + dataOffset += 2 + dataLength; + dataLength = Atari8BitUtility.getWord(bytes, dataOffset); + if (!Atari8BitUtility.unpackCCI(bytes, dataOffset + 2, dataLength, 1, + 0x400, unpackedImage, 0x3C00)) { + return false; + } + + dataOffset += 2 + dataLength; + return dataOffset == bytes.length; + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return isCIN(bytes) || isCCI(bytes); + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + setImageSizeAndPalette(data, 40, 192, Palette.TRUE_COLOR, null); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + byte[] bytes = data.getSourceFileBytes(BIT_MAP_FILE); + if (bytes == null) { + return false; + } + + byte[] unpackedImage; + SourceFile sourceFile = data.getParameters() + .getSourceFile(BIT_MAP_FILE); + int offset = sourceFile.getOffset(); + + if (isCCI(bytes)) { + unpackedImage = new byte[16384]; + if (!unpackCCI(bytes, offset, unpackedImage)) { + return false; + } + } else { + unpackedImage = bytes; + } + int xpixels = 4; + PaletteMapper paletteMapper=new Atari8BitPaletteMapper(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + if (offset + 7680 >= unpackedImage.length) { + return true; + } + int b1 = unpackedImage[offset + 7680] & 0xff; + int b2 = unpackedImage[offset++] & 0xff; + + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + int x3 = x2 >>> 1; + int hue = (b1 & mask_4bit[x3]) >>> shift_4bit[x3]; + int lumaRegister = (b2 & mask_2bit[x2]) >>> shift_2bit[x2]; + int lumaOffset = 0x3c00 + lumaRegister * 0x100 + y1; + int luma = 0; + if (lumaOffset < unpackedImage.length) { + luma = unpackedImage[lumaOffset] & 0xe; + } + + int color = paletteMapper.getRGBColor(hue << 4 + | luma); + data.setDirectPixel(x, y1, color); + } + } + } + return true; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapCPRConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapCPRConverter.java new file mode 100644 index 00000000..c32be954 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapCPRConverter.java @@ -0,0 +1,122 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class LinearBitMapCPRConverter extends LinearBitMapConverter { + + public LinearBitMapCPRConverter() { + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + if (bytes.length < 3) { + return false; + } + + byte[] unpackedImage = new byte[7684]; + boolean result = Atari8BitUtility.unpackKoala(bytes, 1, bytes.length - 1, + bytes[0] & 0xff, unpackedImage); + return result; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + byte[] unpackedImage = new byte[7684]; + boolean result = Atari8BitUtility.unpackKoala(bytes, 1, bytes.length - 1, + bytes[0] & 0xff, unpackedImage); + if (!result) { + return; + } + + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_1, null); + setImageSizeAndPalette(data, 40, 192, Palette.HIRES_1, paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 8); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + byte[] bytes = data.getSourceFileBytes(BIT_MAP_FILE); + if (bytes == null || bytes.length < 3) { + return false; + } + + byte[] unpackedImage = new byte[7680]; + boolean result = Atari8BitUtility.unpackKoala(bytes, 1, bytes.length - 1, + bytes[0] & 0xff, unpackedImage); + + if (!result) { + return false; + } + + int offset = 0; + int xpixels = 8; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + if (offset >= unpackedImage.length) { + return true; + } + int b = unpackedImage[offset++] & 0xff; + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + x2; + int color = (b & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y1, color); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGHGConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGHGConverter.java new file mode 100644 index 00000000..12de4594 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGHGConverter.java @@ -0,0 +1,100 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; + +public class LinearBitMapGHGConverter extends LinearBitMapConverter { + + public LinearBitMapGHGConverter() { + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 0x1f43 && Atari8BitUtility.getWord(bytes, 0) > 0 + && Atari8BitUtility.getWord(bytes, 0) <= 320 + && (bytes[2] & 0xff) > 0 && (bytes[2] & 0xff) <= 200; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + int columns = (Atari8BitUtility.getWord(bytes, 0) + 7) / 8; + int rows = (bytes[2] & 0xff); + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + + RGB[] paletteColors = new RGB[2]; + paletteColors[0] = paletteMapper.getRGB(12); + paletteColors[1] = paletteMapper.getRGB(2); + + setImageSizeAndPalette(data, columns, rows, Palette.HIRES_MANUAL, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 8); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 3; + int xpixels = 8; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + x2; + int color = (b & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y1, color); + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics10Converter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics10Converter.java new file mode 100644 index 00000000..39c72d35 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics10Converter.java @@ -0,0 +1,64 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; + +public class LinearBitMapGraphics10Converter extends LinearBitMapConverter { + + public LinearBitMapGraphics10Converter() { + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 8); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 2; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 2; x2++) { + int x = x1 * xpixels + x2; + + int color = (b & mask_4bit[x2]) >>> shift_4bit[x2]; + data.setDirectPixel(x, y1, color * 0x101010); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics10Converter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics10Converter.js new file mode 100644 index 00000000..5703f985 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics10Converter.js @@ -0,0 +1,14 @@ +function convertToFileData(data) { + var bpsl = (data.getImageDataWidth() + 1) / 2; + var bytes = []; + var offset = 0; + for (var y = 0; y < data.getImageDataHeight(); y++) { + for (var x = 0; x < data.getImageDataWidth(); x = x + 2) { + var c1 = data.getPixel(x, y); + var c2 = data.getPixel(x + 1, y); + var b = c1 << 4 | c2; + bytes[offset++] = b; + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics15Converter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics15Converter.java new file mode 100644 index 00000000..6116fc98 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics15Converter.java @@ -0,0 +1,99 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class LinearBitMapGraphics15Converter extends LinearBitMapConverter { + + public LinearBitMapGraphics15Converter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 7680; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + int columns = 40; + int rows = (bytes.length + columns - 1) / columns; + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.MULTI_1, null); + setImageSizeAndPalette(data, columns, rows, Palette.MULTI_1, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 4; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + + int color = (b & mask_2bit[x2]) >>> shift_2bit[x2]; + data.setPalettePixel(x, y1, color); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics15Converter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics15Converter.js new file mode 100644 index 00000000..b270fbe8 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics15Converter.js @@ -0,0 +1,16 @@ +function convertToFileData(data) { + var bpsl = (data.getImageDataWidth() + 3) / 4; + var bytes = []; + var offset = 0; + for (var y = 0; y < data.getImageDataHeight(); y++) { + for (var x = 0; x < data.getImageDataWidth(); x = x + 4) { + var c1,c2,c3,c4; + c1 = data.getPixel(x, y) & 0x3; + c2 = data.getPixel(x+1, y) & 0x3; + c3 = data.getPixel(x+2, y) & 0x3; + c4 = data.getPixel(x+3, y) & 0x3; + bytes[offset++] = c1 << 6 | c2 << 4 | c3 << 2 | c4; + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics8Converter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics8Converter.java new file mode 100644 index 00000000..93dce9cc --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics8Converter.java @@ -0,0 +1,93 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class LinearBitMapGraphics8Converter extends LinearBitMapConverter { + + public LinearBitMapGraphics8Converter() { + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 7680; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_1, null); + setImageSizeAndPalette(data, 40, 192, Palette.HIRES_1, paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 8); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 8; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + x2; + int color = (b & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y1, color); + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics8Converter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics8Converter.js new file mode 100644 index 00000000..6af9a6a9 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics8Converter.js @@ -0,0 +1,19 @@ +function convertToFileData(data) { + var bpsl = (data.getImageDataWidth() + 7) / 8; + var bytes = []; + var offset = 0; + for (var y = 0; y < data.getImageDataHeight(); y++) { + for (var x = 0; x < data.getImageDataWidth(); x = x + 8) { + var b = 0; + for (var p = 0; p < 8; p++) { + var color; + color = data.getPixel(x + p, y); + if (color != 0) { + b = b | 1 << 7 - p; + } + } + bytes[offset++] = b; + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics9Converter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics9Converter.java new file mode 100644 index 00000000..8d4db187 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics9Converter.java @@ -0,0 +1,96 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class LinearBitMapGraphics9Converter extends LinearBitMapConverter { + + public LinearBitMapGraphics9Converter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 7680; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.GTIA_GREY_1, null); + setImageSizeAndPalette(data, 40, 192, Palette.GTIA_GREY_1, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 2); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 2; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 2; x2++) { + int x = x1 * xpixels + x2; + + int color = (b & mask_4bit[x2]) >>> shift_4bit[x2]; + data.setPalettePixel(x, y1, color); + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics9Converter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics9Converter.js new file mode 100644 index 00000000..5703f985 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapGraphics9Converter.js @@ -0,0 +1,14 @@ +function convertToFileData(data) { + var bpsl = (data.getImageDataWidth() + 1) / 2; + var bytes = []; + var offset = 0; + for (var y = 0; y < data.getImageDataHeight(); y++) { + for (var x = 0; x < data.getImageDataWidth(); x = x + 2) { + var c1 = data.getPixel(x, y); + var c2 = data.getPixel(x + 1, y); + var b = c1 << 4 | c2; + bytes[offset++] = b; + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHIPConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHIPConverter.java new file mode 100644 index 00000000..060fbeac --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHIPConverter.java @@ -0,0 +1,193 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.RBGUtility; + +public class LinearBitMapHIPConverter extends LinearBitMapConverter { + + public LinearBitMapHIPConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + // HIP image with binary file headers. Two concatenated COM files. + int frame1Length = Atari8BitUtility.getLengthFromBinaryHeader(bytes, 0); + if (frame1Length > 0 && frame1Length * 2 + 12 == bytes.length + && frame1Length % 40 == 0) { + + int frame2Length = Atari8BitUtility.getLengthFromBinaryHeader(bytes, + frame1Length + 6); + if (frame2Length == frame1Length) { + return true; + } + } + // HIP image with graphics 10 palette. + else if ((bytes.length - 9) % 80 == 0) { + return true; + } + return false; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + // HIP image with binary file headers. Two concatenated COM files. + int rows; + int frame1Length = Atari8BitUtility.getLengthFromBinaryHeader(bytes, 0); + if (frame1Length > 0 && frame1Length * 2 + 12 == bytes.length + && frame1Length % 40 == 0) { + + int frame2Length = Atari8BitUtility.getLengthFromBinaryHeader(bytes, + frame1Length + 6); + if (frame2Length != frame1Length) { + throw new IllegalStateException("Inconsistent file"); + } + + rows = frame1Length / 40; + } + // hip image with gr10 palette. + else if ((bytes.length - 9) % 80 == 0) { + rows = (bytes.length - 9) / 80; + } else { + throw new IllegalStateException("Inconsistent file"); + } + + setImageSizeAndPalette(data, 40, rows, Palette.TRUE_COLOR, null); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4 + 1); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int rows = data.getParameters().getRows(); + int columns = data.getParameters().getColumns(); + PaletteMapper paletteMapper=new Atari8BitPaletteMapper(); + + // Assume the binary is already merged in case of a 160012 bytes HIP. + int offset9, offset10, offsetPalette; + + byte[] sourceFileBytes = data.getSourceFileBytes(BIT_MAP_FILE); + if (sourceFileBytes == null) { + return false; + } + + // Assume grey scale colors by default. + int[] graphics10Colors = { 0, 0, 2, 4, 6, 8, 10, 12, 14 }; + + // Compute the offsets in the file. + int frameSize = rows * columns; + int rest = sourceFileBytes.length - 2 * frameSize; + if (rest == 0 || rest == 9) { + // In this case the graphics 9 picture comes first + offset9 = 0; + offset10 = offset9 + 0 + frameSize; + offsetPalette = offset10 + frameSize; + if (rest == 9) { + for (int i = 0; i < 9; i++) { + graphics10Colors[i] = sourceFileBytes[offsetPalette + i]; + } + } + } else if (rest == 12) { + // In this case the graphics 10 picture comes first + offset10 = 6; + offset9 = offset10 + 6 + frameSize; + } else { + return false; + } + + int[] buffer1 = new int[columns * 4 + 1]; + int[] buffer2 = new int[columns * 4 + 1]; + + for (int y1 = 0; y1 < rows; y1++) { + for (int x1 = 0; x1 < columns; x1++) { + int byte9 = data.getSourceFileByte(BIT_MAP_FILE, offset9++); + if (byte9 < 0) { + return true; + } + int byte10 = data.getSourceFileByte(BIT_MAP_FILE, offset10++); + if (byte10 < 0) { + return true; + } + + // Byte 1 is the GTIA 9 byte, take the values as brightness + // values + int brightness1 = (byte9 & mask_4bit[0]) >>> shift_4bit[0]; + int brightness2 = (byte9 & mask_4bit[1]) >>> shift_4bit[1]; + + // Byte 2 is the GTIA 10 byte, take the values from the GTIA 10 + // palette + int brightness3 = (byte10 & mask_4bit[0]) >>> shift_4bit[0]; + int brightness4 = (byte10 & mask_4bit[1]) >>> shift_4bit[1]; + brightness3 = graphics10Colors[Atari8BitUtility.GRAPHICS_10_REGISTERS[brightness3]]; + brightness4 = graphics10Colors[Atari8BitUtility.GRAPHICS_10_REGISTERS[brightness4]]; + + // Put the color values in the row buffer, shifted by 1 pixel + int x = x1 << 2; + buffer1[x + 0] = brightness1; + buffer1[x + 1] = brightness1; + buffer1[x + 2] = brightness2; + buffer1[x + 3] = brightness2; + + buffer2[x + 1] = brightness3; + buffer2[x + 2] = brightness3; + buffer2[x + 3] = brightness4; + buffer2[x + 4] = brightness4; + } + + // Merge the two buffers into combined color values. + for (int x = 0; x < buffer1.length; x++) { + int atariColor = RBGUtility.combineRGBColor( + paletteMapper.getRGBColor(buffer1[x]), + paletteMapper.getRGBColor(buffer2[x])); + data.setDirectPixel(x, y1, atariColor); + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHIPConverter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHIPConverter.js new file mode 100644 index 00000000..679fa642 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHIPConverter.js @@ -0,0 +1,31 @@ +function convertToFileData(data) { + var bpsl = (data.getImageDataWidth() + 1) / 2; + var bptl = bpsl / 2; + var bytes = []; + var offset = 0; + for (var y = 0; y < data.getImageDataHeight(); y++) { + for (var x = 0; x < data.getImageDataWidth(); x = x + 4) { + var c1; + var c2; + c1 = data.getPixel(x, y); + if (x+2 < data.getImageDataWidth() ){ + c2 = data.getPixel(x+2, y); + } else { + c2 = 0; + } + bytes[offset] = (color1 << 4 | color2); + + c1 = data.getPixel(x+1, y); + if (x+3 < data.getImageDataWidth() ){ + c2 = data.getPixel(x+3, y); + } else { + c2 = 0; + } + bytes[offset] = (color1 << 4 | color2); + } + bytes[offset++] = b; + } + offset += bptl; + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHR2Converter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHR2Converter.java new file mode 100644 index 00000000..4aec11c3 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHR2Converter.java @@ -0,0 +1,122 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.RBGUtility; + +public class LinearBitMapHR2Converter extends LinearBitMapConverter { + + public LinearBitMapHR2Converter() { + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 16006; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + PaletteMapper paletteMapper=new Atari8BitPaletteMapper(); + + RGB[] paletteColors = new RGB[8]; + RGB[] palette1Colors = new RGB[2]; + RGB[] palette2Colors = new RGB[4]; + palette1Colors[0] = paletteMapper.getRGB(bytes[16000] & 0xfe); + palette1Colors[1] = paletteMapper.getRGB(bytes[16001] & 0xfe); + palette2Colors[0] = paletteMapper.getRGB(bytes[16002] & 0xfe); + palette2Colors[1] = paletteMapper.getRGB(bytes[16003] & 0xfe); + palette2Colors[2] = paletteMapper.getRGB(bytes[16004] & 0xfe); + palette2Colors[3] = paletteMapper.getRGB(bytes[16005] & 0xfe); + + // Compute mixed interlace colors. + for (int x1 = 0; x1 < palette1Colors.length; x1++) { + for (int x2 = 0; x2 < palette2Colors.length; x2++) { + paletteColors[x1 * palette2Colors.length + x2] = RBGUtility + .combineRGB(palette1Colors[x1], palette2Colors[x2]); + } + } + setImageSizeAndPalette(data, 40, 200, Palette.MULTI_MANUAL, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 8); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 8; + + int frameSize = 8000; + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b1 = data.getSourceFileByte(BIT_MAP_FILE, offset); + if (b1 < 0) { + return true; + } + int b2 = data.getSourceFileByte(BIT_MAP_FILE, offset + + frameSize); + if (b2 < 0) { + return true; + } + offset++; + + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + x2; + // Graphics 8 + int color1 = (b1 & mask_1bit[x2]) >>> shift_1bit[x2]; + // Graphics 15, half resolution + int color2 = (b2 & mask_2bit[x2 >>> 1]) >>> shift_2bit[x2 >>> 1]; + data.setPalettePixel(x, y1, (color1 << 2) + color2); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHRConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHRConverter.java new file mode 100644 index 00000000..8113bd29 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapHRConverter.java @@ -0,0 +1,108 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.RBGUtility; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class LinearBitMapHRConverter extends LinearBitMapConverter { + + public LinearBitMapHRConverter() { + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 16384; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + RGB[] paletteColors = new RGB[3]; + paletteColors[0] = PaletteUtility.BLACK; + paletteColors[2] = PaletteUtility.WHITE; + + // Compute mixed interlace colors. + paletteColors[1] = RBGUtility.combineRGB(paletteColors[0], + paletteColors[2]); + setImageSizeAndPalette(data, 32, 239, Palette.MULTI_MANUAL, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 8); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 8; + + int frameSize = 8192; + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b1 = data.getSourceFileByte(BIT_MAP_FILE, offset); + if (b1 < 0) { + return true; + } + int b2 = data.getSourceFileByte(BIT_MAP_FILE, offset + + frameSize); + if (b2 < 0) { + return true; + } + offset++; + + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + x2; + int color1 = (b1 & mask_1bit[x2]) >>> shift_1bit[x2]; + int color2 = (b2 & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y1, color1 + color2); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapILCConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapILCConverter.java new file mode 100644 index 00000000..64cc1704 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapILCConverter.java @@ -0,0 +1,102 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; + +public class LinearBitMapILCConverter extends LinearBitMapConverter { + + public LinearBitMapILCConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 15360; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + setImageSizeAndPalette(data, 40, 192, Palette.TRUE_COLOR, null); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 2); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int columns = data.getParameters().getColumns(); + + int offset1 = 7680; + int offset2 = 0; + int xpixels = 2; + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1 = y1 + 1) { + for (int x1 = 0; x1 < columns; x1++) { + int c = data.getSourceFileByte(BIT_MAP_FILE, offset1++); + if (c < 0) { + return true; + } + int b = data.getSourceFileByte(BIT_MAP_FILE, offset2++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 2; x2++) { + int x = x1 * xpixels + x2; + + int color = (c & mask_4bit[x2]) >>> shift_4bit[x2]; + int brightness = (b & mask_4bit[x2]) >>> shift_4bit[x2]; + int atariColor = color << 4 | brightness; + int directColor = paletteMapper + .getRGBColor(atariColor); + data.setDirectPixel(x, y1, directColor); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapINPConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapINPConverter.java new file mode 100644 index 00000000..2f740d21 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapINPConverter.java @@ -0,0 +1,117 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.RBGUtility; + +/** + * The valid bit pattern combinations from the two images are: (0,0)=0, (0,1)=1, + * (1,1)=2, (1,2)=3, (2,2)=4, (2,3)=5, (3,3)=6 + */ + +public class LinearBitMapINPConverter extends LinearBitMapConverter { + + public LinearBitMapINPConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 16004 || bytes.length == 16052; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + RGB[] paletteColors = new RGB[7]; + paletteColors[0] = paletteMapper.getRGB(bytes[16000] & 0xfe); + paletteColors[2] = paletteMapper.getRGB(bytes[16001] & 0xfe); + paletteColors[4] = paletteMapper.getRGB(bytes[16002] & 0xfe); + paletteColors[6] = paletteMapper.getRGB(bytes[16003] & 0xfe); + + // Compute mixed interlace colors. + paletteColors[1] = RBGUtility.combineRGB(paletteColors[0], + paletteColors[2]); + paletteColors[3] = RBGUtility.combineRGB(paletteColors[2], + paletteColors[4]); + paletteColors[5] = RBGUtility.combineRGB(paletteColors[4], + paletteColors[6]); + + setImageSizeAndPalette(data, 40, 200, Palette.MULTI_MANUAL, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 4; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b1 = data.getSourceFileByte(BIT_MAP_FILE, offset + 8000); + int b2 = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b1 < 0 || b2 < 0) { + return true; + } + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + + int color1 = (b1 & mask_2bit[x2]) >>> shift_2bit[x2]; + int color2 = (b2 & mask_2bit[x2]) >>> shift_2bit[x2]; + data.setPalettePixel(x, y1, color1 + color2); + } + + } + } + return true; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapINTConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapINTConverter.java new file mode 100644 index 00000000..6742f4d9 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapINTConverter.java @@ -0,0 +1,147 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.RBGUtility; + +/** + * The valid bit pattern combinations from the two images are: (0,0)=0, (0,1)=1, + * (1,1)=2, (1,2)=3, (2,2)=4, (2,3)=5, (3,3)=6 + */ + +public class LinearBitMapINTConverter extends LinearBitMapConverter { + + public LinearBitMapINTConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + if (bytes.length < 10) { + return false; + } + if (bytes[0] != (byte) 'I' + || bytes[1] != (byte) 'N' + || bytes[2] != (byte) 'T' + || bytes[3] != (byte) '9' + || bytes[4] != (byte) '5' + || bytes[5] != (byte) 'a' + || bytes[6] == (byte) 0 + || (bytes[6] & 0xff) > 40 + || bytes[7] == (byte) 0 + || (bytes[7] & 0xff) > 239 + || bytes[8] != (byte) 0x0f + || bytes[9] != (byte) 0x2b + || 18 + (bytes[6] & 0xff) * (bytes[7] & 0xff) * 2 != bytes.length) { + return false; + } + return true; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + int rows; + int columns; + rows = bytes[7] & 0xff; + columns = bytes[6] & 0xff; + + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + RGB[] paletteColors = new RGB[16]; + RGB[] palette1Colors = new RGB[4]; + RGB[] palette2Colors = new RGB[4]; + palette1Colors[0] = paletteMapper.getRGB(bytes[10] & 0xfe); + palette1Colors[1] = paletteMapper.getRGB(bytes[11] & 0xfe); + palette1Colors[2] = paletteMapper.getRGB(bytes[12] & 0xfe); + palette1Colors[3] = paletteMapper.getRGB(bytes[13] & 0xfe); + palette2Colors[0] = paletteMapper.getRGB(bytes[14] & 0xfe); + palette2Colors[1] = paletteMapper.getRGB(bytes[15] & 0xfe); + palette2Colors[2] = paletteMapper.getRGB(bytes[16] & 0xfe); + palette2Colors[3] = paletteMapper.getRGB(bytes[17] & 0xfe); + + // Compute mixed interlace colors. + for (int x1 = 0; x1 < 4; x1++) { + for (int x2 = 0; x2 < 4; x2++) { + paletteColors[x1 * 4 + x2] = RBGUtility.combineRGB( + palette1Colors[x1], palette2Colors[x2]); + } + + } + setImageSizeAndPalette(data, columns, rows, Palette.MULTI_MANUAL, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset1 = 18; + int offset2 = offset1 + data.getParameters().getRows() + * data.getParameters().getColumns(); + int xpixels = 4; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b1 = data.getSourceFileByte(BIT_MAP_FILE, offset1++); + int b2 = data.getSourceFileByte(BIT_MAP_FILE, offset2++); + if (b1 < 0 || b2 < 0) { + return true; + } + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + + int color1 = (b1 & mask_2bit[x2]) >>> shift_2bit[x2]; + int color2 = (b2 & mask_2bit[x2]) >>> shift_2bit[x2]; + int color = 4 * color1 + color2; + data.setPalettePixel(x, y1, color); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapKoalaConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapKoalaConverter.java new file mode 100644 index 00000000..b8f5b61a --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapKoalaConverter.java @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; + +public class LinearBitMapKoalaConverter extends LinearBitMapConverter { + + public LinearBitMapKoalaConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + if (bytes.length < 22) { + return false; + } + + if ((bytes[0] != (byte) 0xff || bytes[1] != (byte) 0x80 + || bytes[2] != (byte) 0xc9 || bytes[3] != (byte) 0xc7 + || bytes[4] < (byte) 0x1a || (bytes[4] & 0xff) >= bytes.length + || bytes[5] != (byte) 0 || bytes[6] != (byte) 1 + || bytes[8] != (byte) 0x0e || bytes[9] != (byte) 0 + || bytes[10] != (byte) 40 || bytes[11] != (byte) 0 + || bytes[12] != (byte) 192 || bytes[20] != (byte) 0 || bytes[21] != (byte) 0)) { + return false; + } + + byte[] unpackedImage = new byte[7684]; + boolean result = Atari8BitUtility.unpackKoala(bytes, + (bytes[4] & 0xff) + 1, bytes.length - (bytes[4] & 0xff) - 1, + bytes[7] & 0xff, unpackedImage); + + return result; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + byte[] unpackedImage = new byte[7684]; + boolean result = Atari8BitUtility.unpackKoala(bytes, + (bytes[4] & 0xff) + 1, bytes.length - (bytes[4] & 0xff) - 1, + bytes[7] & 0xff, unpackedImage); + + if (!result) { + throw new IllegalStateException("canConverterToImage() not called"); + } + + unpackedImage[7680] = bytes[17]; + unpackedImage[7681] = bytes[13]; + unpackedImage[7682] = bytes[14]; + unpackedImage[7683] = bytes[15]; + + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + RGB[] paletteColors = new RGB[4]; + paletteColors[0] = paletteMapper.getRGB(unpackedImage[7680] & 0xfe); + paletteColors[1] = paletteMapper.getRGB(unpackedImage[7681] & 0xfe); + paletteColors[2] = paletteMapper.getRGB(unpackedImage[7682] & 0xfe); + paletteColors[3] = paletteMapper.getRGB(unpackedImage[7683] & 0xfe); + + setImageSizeAndPalette(data, 40, 192, Palette.MULTI_MANUAL, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + byte[] bytes = data.getSourceFileBytes(BIT_MAP_FILE); + if (bytes == null || bytes.length < 8) { + return false; + } + + byte[] unpackedImage = new byte[7684]; + boolean result; + + result = Atari8BitUtility.unpackKoala(bytes, (bytes[4] & 0xff) + 1, + bytes.length - (bytes[4] & 0xff) - 1, bytes[7] & 0xff, + unpackedImage); + if (!result) { + return false; + } + + int offset = 0; + int xpixels = 4; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + if (offset >= unpackedImage.length) { + return true; + } + int b = unpackedImage[offset++] & 0xff; + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + int color = (b & mask_2bit[x2]) >>> shift_2bit[x2]; + data.setPalettePixel(x, y1, color); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapMCPConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapMCPConverter.java new file mode 100644 index 00000000..ecf542c2 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapMCPConverter.java @@ -0,0 +1,123 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.RBGUtility; + +public class LinearBitMapMCPConverter extends LinearBitMapConverter { + + public LinearBitMapMCPConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 16008; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + RGB[] paletteColors = new RGB[16]; + RGB[] palette1Colors = new RGB[4]; + RGB[] palette2Colors = new RGB[4]; + palette1Colors[0] = paletteMapper.getRGB(bytes[16003] & 0xfe); + palette1Colors[1] = paletteMapper.getRGB(bytes[16000] & 0xfe); + palette1Colors[2] = paletteMapper.getRGB(bytes[16001] & 0xfe); + palette1Colors[3] = paletteMapper.getRGB(bytes[16002] & 0xfe); + palette2Colors[0] = paletteMapper.getRGB(bytes[16007] & 0xfe); + palette2Colors[1] = paletteMapper.getRGB(bytes[16004] & 0xfe); + palette2Colors[2] = paletteMapper.getRGB(bytes[16005] & 0xfe); + palette2Colors[3] = paletteMapper.getRGB(bytes[16006] & 0xfe); + + // Compute mixed interlace colors. + for (int x1 = 0; x1 < 4; x1++) { + for (int x2 = 0; x2 < 4; x2++) { + paletteColors[x1 * 4 + x2] = RBGUtility.combineRGB( + palette1Colors[x1], palette2Colors[x2]); + } + } + + setImageSizeAndPalette(data, 40, 200, Palette.MULTI_MANUAL, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 4; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b1 = data.getSourceFileByte(BIT_MAP_FILE, offset + 8000); + int b2 = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b1 < 0 || b2 < 0) { + return true; + } + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + + int color1 = (b1 & mask_2bit[x2]) >>> shift_2bit[x2]; + int color2 = (b2 & mask_2bit[x2]) >>> shift_2bit[x2]; + int color; + if ((y1 & 1) == 1) { + color = 4 * color1 + color2; + } else { + color = 4 * color2 + color1; + } + data.setPalettePixel(x, y1, color); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapMicroPainterConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapMicroPainterConverter.java new file mode 100644 index 00000000..262b5068 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapMicroPainterConverter.java @@ -0,0 +1,107 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class LinearBitMapMicroPainterConverter extends LinearBitMapConverter { + + public LinearBitMapMicroPainterConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 7680 || bytes.length == 7684; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + RGB[] paletteColors; + if (bytes.length == 7684) { + paletteColors = new RGB[4]; + paletteColors[0] = paletteMapper.getRGB(bytes[7680] & 0xfe); + paletteColors[1] = paletteMapper.getRGB(bytes[7681] & 0xfe); + paletteColors[2] = paletteMapper.getRGB(bytes[7682] & 0xfe); + paletteColors[3] = paletteMapper.getRGB(bytes[7683] & 0xfe); + } else { + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.MULTI_1, null); + } + + setImageSizeAndPalette(data, 40, 192, Palette.MULTI_MANUAL, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 4; + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b < 0) { + return true; + } + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + + int color = (b & mask_2bit[x2]) >>> shift_2bit[x2]; + data.setPalettePixel(x, y1, color); + } + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapRIPConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapRIPConverter.java new file mode 100644 index 00000000..6899f43f --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapRIPConverter.java @@ -0,0 +1,698 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.RBGUtility; + +/** + * RIP picture format description
+ * + * Original text by Rocky of Madteam taken from Syzygy Magazine
+ * RIP picture was shown first time in Orneta of Poland in '97 in Igor demo by + * Madteam. There we copied several disks of RIP images. RIP is a new graphics + * storage format on Atari 8-bit. It is based on already famous HIP picture + * format (Gr.9 + Gr.10). Theoretically it is possible to get 144 colors (there + * are about 40 in practice) with resolution of 160x238 (RIP mode 32; 16 lum x 9 + * col). RIP is more complicated than HIP, because of the header which contains + * a lot of information about colors, resolution and a note from the author. RIP + * can have various vertical sizes (max. 238 lines) which cause less space on + * disk and faster reading.
+ *
+ * + * (E.g. we have a logo with 50 lines. Our logo will be saved with 200 lines as + * HIP and takes about 16kB but saved as RIP - only 4kB plus several bytes of + * header. That's a difference, isn't it?) In addition RIP can be colored and + * HIP can only be grey scaled. (HIP can also be colored but there is no room + * for color info in the header.) The first one can still be packed (algorithm + * in end phase) for RIP dedicated Visage viewer which is able to recognize its + * size, colors, compression method and displaying on screen. Saving HIP as RIP + * is no problem 'couse of similar data format. Adapting existing HIP viewers + * for RIP pictures shouldn't be problematic too; Only what has to be done is + * format recognition, displaying of various image height and setting colors + * (for Gr.10) from the header (see below).
+ *
+ * + * How to make a RIP picture?
+ * + * It can be quite difficult. There is a converter for Amiga and PC. This is not + * a real converter from any graphics format (GIF, IFF or Jpeg) to RIP. To make + * a RIP picture, you will have to use programs not only dedicated to RIP. The + * best for Amiga is Personal Paint and for PC - Display. It's quite a large + * job. One picture has to be divided into two others. Next: size modification, + * color palette reduction (one of these two pictures has to be 16 grey scales + * what can be done with almost all programs and the other picture has to be in + * 9 colors, what most programs for the Amiga and PC simply cannot do). The + * effect can be very satisfactory, but it might also be completely bad, which + * happens quite often (none of the pics is perfect). You can then always create + * a HIP picture, which is better in this case (grey scale is easier to do) but + * you will be limited to 200 lines. Well, life is brutal...
+ *
+ * Header description:
+ * In 'Description' filed text with quotes (") is pure ASCII string. + * + *
+ *  Offset | Len | Description
+ * --------------------------------------------
+ *       0 |  3  | "RIP" - RIP image identifier
+ *       3 |  4  | version:
+ *         |     |         "1.x " - standard RIP
+ *         |     |         "2.0 " - Multi RIP
+ *       7 |  1  | graphics mode:
+ *         |     |         $20 - RIP or HIP
+ *         |     |         $30 - Multi RIP, palette at the end of file
+ *         |     |         $0f - Graphics  8
+ *         |     |         $4f - Graphics  9
+ *         |     |         $8f - Graphics 10
+ *         |     |         $cf - Graphics 11
+ *         |     |         $0e - Graphics 15
+ *       8 |  2  | compression method:
+ *         |     |         0, 0 - no compress
+ *         |     |         0, 1 - RIPPCK
+ *      10 |  2  | header length in bytes, MSB/LSB !!!
+ *      12 |  1  | not used
+ *      13 |  1  | image width in pixels (max. 80)     *see below
+ *      14 |  1  | not used
+ *      15 |  1  | image height in lines (max. 238)
+ *      16 |  1  | display option (?), standard set to $20
+ *      17 |  1  | author note length in bytes (max. 256)
+ *      18 |  2  | "T:" - text identifier
+ *      20 |  n  | author note
+ *    20+n |  1  | number of colors (fixed = 9 from Gr.10)
+ *    21+n |  3  | "CM:" - color map identifier
+ *    24+n |  9  | color values                        **see below
+ *    33+n |  3  | "PCK" - Multi RIP packed file only, means packed
+ *         |     |         images data
+ * 
+ * + * Directly after header images data are stored. First Gr.10, next Gr.9. + * + * HIP and RIP are 80 pixels wide pictures with shifted 9-color plan (Gr.10) + * relativelly to 16-grey shaded plan (Gr.9) for half pixel right. Thus, they + * appear as 160x200, but one pic has only 80x200; + * + * Number of colors is fixed to 9 now but it may change. So, take number of + * colors from 20+n byte of header (n - length of author note) for safety. (RIP + * mode 48 has more colors !!) + * + * Displaying RIP "1.x" picture routine is similar to HIP routine. The only + * difference is to set color registers with values put behind "CM:" while Gr.10 + * line. + * + * Information above is enough for writing own procedure showing RIP 1.x + * picture. For now I don't have any info about Multi RIP especially for + * compression algorithm and color palette. The only thing I know for sure is + * the palette should be changed every 2 scanlines. Maybe someone else knows a + * little bit more about Multi RIP (or RIP mode 48 with many more colors than + * mode 32)... + * + * Note: This implementation is based on FAIL 1.0.1 and allows 239 lines tough + * the specification above states 238 as the maximum. + */ +// TODO Verify against FAIL 1.0.2, check if the spurious grey spot and bugs are +// gone +public class LinearBitMapRIPConverter extends LinearBitMapConverter { + + private final static class RIPFile { + public static final byte RIP = 0x20; + public static final byte MULTI_RIP = 0x30; + + private int graphicsMode; + private int width; + private int height; + private int[] palette; + private byte[] unpackedImage; + + private RIPFile(int graphicsMode, int width, int height, int[] palette, + byte[] unpacked_image) { + this.graphicsMode = graphicsMode; + this.width = width; + this.height = height; + this.palette = palette; + this.unpackedImage = unpacked_image; + + } + + public static RIPFile createInstance(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + if (bytes.length < 23) { + return null; + } + int graphicsMode = bytes[7]; + int headerLength = (bytes[11] & 0xff) + 256 * (bytes[12] & 0xff); + int width = bytes[13] & 0xff; + int height = bytes[15] & 0xff; + int textLength = bytes[17] & 0xff; + if (bytes.length < 20 + textLength) { + return null; + } + int paletteLength = bytes[20 + textLength] & 0xff; + int dataLength = bytes.length - headerLength; + + if (bytes[0] != 'R' || bytes[1] != 'I' || bytes[2] != 'P' + || width > 80 || height > 239 || textLength > 152 + || bytes[18] != 'T' || bytes[19] != ':' + || paletteLength != 9 || bytes[21 + textLength] != 'C' + || bytes[22 + textLength] != 'M' + || bytes[23 + textLength] != ':') { + return null; + } + + byte[] unpackedImage = new byte[24576]; + + // Check compression mode. + switch (bytes[9]) { + case 0: + // No compression. + if (dataLength > unpackedImage.length) { + return null; + } + System.arraycopy(bytes, headerLength, unpackedImage, 0, + dataLength); + break; + + // Compression + case 1: + if (!ShannonFano.unpack(bytes, headerLength, dataLength, + unpackedImage)) { + return null; + } + break; + + default: + return null; + } + + // Check graphic mode + switch (graphicsMode) { + case RIP: + break; + case MULTI_RIP: + int frame_len = (width / 2) * height; + for (int y = 0; y < height; y++) { + for (int x = 0; x < 8; x++) { + int ix = 2 * frame_len + y * 8 + x; + if (y > 0 && unpackedImage[ix] == 0) + unpackedImage[ix] = unpackedImage[ix - 8]; + } + } + break; + default: + return null; + } + + int[] palette = new int[paletteLength]; + for (int i = 0; i < paletteLength; i++) { + palette[i] = bytes[24 + textLength + i] & 0xff; + } + RIPFile result = new RIPFile(graphicsMode, width, height, palette, + unpackedImage); + return result; + } + + public int getGraphicsMode() { + return graphicsMode; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public int[] getPalette() { + return palette; + } + + public byte[] getUnpackedImage() { + return unpackedImage; + } + + } + + private static final class ShannonFano { + + private static void unpack_cnibl(byte data[], int dataOffset, int size, + int output[]) { + int x = dataOffset; + int y = 0; + while (y < size) { + int a = data[x++] & 0xff; + output[y++] = a >>> 4; + output[y++] = a & 0x0f; + } + } + + private static void unpack_sort(byte data[], int dataOffset, int size, + int tre01[], int tre02[]) { + int[] pom = new int[16]; + int y; + int x; + int md_ = 0; + int md = 0; + + unpack_cnibl(data, dataOffset, size, tre02); + + for (y = 0; y < size; y++) { + pom[tre02[y]]++; + } + + x = 0; + do { + y = 0; + do { + if (x == tre02[y]) { + tre01[md_++] = y; + } + y++; + } while (y < size); + x++; + } while (x < 16); + + x = 0; + do { + y = pom[x]; + while (y != 0) { + tre02[md++] = x; + y--; + } + x++; + } while (x < 16); + } + + private static void unpack_fano(byte data[], int dataOffset, int size, + int tre01[], int tre02[], int l0[], int h0[], int l1[], + int h1[], int lhOffset) { + int p; + int err; + int l; + int nxt; + int y; + + unpack_sort(data, dataOffset, size, tre01, tre02); + + clearMemory(l0, lhOffset, size); + clearMemory(l1, lhOffset, size); + clearMemory(h0, lhOffset, size); + clearMemory(h1, lhOffset, size); + + p = 0; + err = 0; + l = 0; + nxt = 0; + y = 0; + do { + if (tre02[y] != 0) { + int x; + int tmp; + int val; + int a; + p += err; + x = tre02[y]; + if (x != l) { + l = x; + err = 0x10000 >>> x; + } + tmp = p; + val = tre01[y]; + x = tre02[y]; + a = 0; + for (;;) { + int z = lhOffset + a; + x--; + tmp <<= 1; + if (tmp < 0x10000) { + if (x == 0) { + a = val; + l0[z] = a; + break; + } + a = h0[z]; + if (a == 0) { + a = ++nxt; + h0[z] = a; + } + } else { + tmp &= 0xFFFF; + if (x == 0) { + a = val; + l1[z] = a; + break; + } + a = h1[z]; + if (a == 0) { + a = ++nxt; + h1[z] = a; + } + } + } + } + y++; + } while (y < size); + } + + private static void clearMemory(int[] array, int offset, int size) { + for (int i = 0; i < size; i++) { + array[offset + i] = 0; + } + + } + + public static boolean unpack(byte data[], int dataOffset, + int dataLength, byte unpackedData[]) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (dataOffset < 0) { + throw new IllegalArgumentException( + "Parameter 'dataOffset' must not be negative, specified value is " + + dataOffset + "."); + } + if (unpackedData == null) { + throw new IllegalArgumentException( + "Parameter 'unpackedData' must not be null."); + } + int[] adl0 = new int[576]; + int[] adh0 = new int[576]; + int[] adl1 = new int[576]; + int[] adh1 = new int[576]; + + int[] tre01 = new int[256]; + int[] tre02 = new int[256]; + + int unpacked_len; + int sx, sxend; + int cx, dx; + int lic, csh, c; + + // "PCK" header (16 bytes) + 288 bytes shannon-fano + if (dataLength < 16 + 288 || data[dataOffset + 0] != 'P' + || data[dataOffset + 1] != 'C' + || data[dataOffset + 2] != 'K') { + return false; + } + + unpacked_len = (data[dataOffset + 4] & 0xff) + 256 + * (data[dataOffset + 5] & 0xff) - 33; + if (unpacked_len > 0x5EFE) { + return false; + } + + // Buggy pictures?! + if (unpacked_len == 16811) { + unpacked_len = 16800; + } + + unpack_fano(data, dataOffset + 16, 64, tre01, tre02, adl0, adh0, + adl1, adh1, 0); + unpack_fano(data, dataOffset + 16 + 32, 256, tre01, tre02, adl0, + adh0, adl1, adh1, 64); + unpack_fano(data, dataOffset + 16 + 160, 256, tre01, tre02, adl0, + adh0, adl1, adh1, 320); + + sx = dataOffset + 16 + 288; + sxend = dataOffset + dataLength + 1; + + dx = 0; + lic = -1; + csh = 0; + + do { + // GBIT(); + if (--lic < 0) { + if (sx >= sxend) { + return false; + } + csh = data[sx++] & 0xff; + lic = 7; + } + c = (csh & (1 << lic)); + + if (c == 0) { + int a = 0; + for (;;) { + int y = a; + + // GBIT(); + if (--lic < 0) { + if (sx >= sxend) { + return false; + } + csh = data[sx++] & 0xff; + lic = 7; + } + c = (csh & (1 << lic)); + + if (c == 0) { + if ((a = adh0[320 + y]) == 0) { + unpackedData[dx] = (byte) adl0[320 + y]; + break; + } + } else { + if ((a = adh1[320 + y]) == 0) { + unpackedData[dx] = (byte) adl1[320 + y]; + break; + } + } + } + ++dx; + } else { + int a = 0; + for (;;) { + int y = a; + + // GBIT(); + if (--lic < 0) { + if (sx >= sxend) { + return false; + } + csh = data[sx++] & 0xff; + lic = 7; + } + c = (csh & (1 << lic)); + + if (c == 0) { + if ((a = adh0[64 + y]) == 0) { + a = adl0[64 + y]; + break; + } + } else { + if ((a = adh1[64 + y]) == 0) { + a = adl1[64 + y]; + break; + } + } + } + cx = dx - (a + 2); + a = 0; + for (;;) { + int y = a; + + // GBIT(); + if (--lic < 0) { + if (sx >= sxend) { + return false; + } + csh = data[sx++] & 0xff; + lic = 7; + } + c = (csh & (1 << lic)); + + if (c == 0) { + if ((a = adh0[y]) == 0) { + a = adl0[y]; + break; + } + } else { + if ((a = adh1[y]) == 0) { + a = adl1[y]; + break; + } + } + } + + if (cx > 0) { + System.arraycopy(unpackedData, cx, unpackedData, dx, + a + 2); + } + dx += a + 2; + } + } while (dx < unpacked_len); + + return true; + } + } + + public LinearBitMapRIPConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + RIPFile ripFile = RIPFile.createInstance(bytes); + if (ripFile == null) { + return false; + } + return true; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + RIPFile ripFile = RIPFile.createInstance(bytes); + if (ripFile == null) { + throw new IllegalStateException("canConvertToImage() not called"); + } + + int columns; + int rows; + columns = (ripFile.getWidth() + 1) / 2; + rows = ripFile.getHeight(); + + setImageSizeAndPalette(data, columns, rows, Palette.TRUE_COLOR, null); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4 + 1); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int rows = data.getParameters().getRows(); + int columns = data.getParameters().getColumns(); + PaletteMapper paletteMapper = new Atari8BitPaletteMapper(); + + // Compute palette. + RIPFile ripFile = RIPFile.createInstance(data + .getSourceFileBytes(BIT_MAP_FILE)); + if (ripFile == null) { + return false; + } + + byte[] unpackedImage = ripFile.getUnpackedImage(); + int[] graphics10Colors; + switch (ripFile.getGraphicsMode()) { + case RIPFile.RIP: + graphics10Colors = ripFile.getPalette(); + break; + case RIPFile.MULTI_RIP: + graphics10Colors = new int[ripFile.getPalette().length]; + break; + default: + throw new IllegalStateException("Unsupported graphics mode " + + ripFile.getGraphicsMode() + "."); + + } + + // Compute the offsets in the file. + int offset9, offset10; + int frameSize = rows * columns; + offset10 = 0; + offset9 = offset10 + frameSize; + + int[] buffer1 = new int[columns * 4 + 1]; + int[] buffer2 = new int[columns * 4 + 1]; + for (int y1 = 0; y1 < rows; y1++) { + + // MultiRIP mode? + if (ripFile.getGraphicsMode() == RIPFile.MULTI_RIP) { + int offset = frameSize * 2 + ((y1 >>> 1) << 3); + for (int i = 0; i < graphics10Colors.length - 1; i++) { + graphics10Colors[i + 1] = unpackedImage[offset + i] & 0xff; + } + } + + for (int x1 = 0; x1 < columns; x1++) { + if (offset9 >= unpackedImage.length) { + return true; + } + int byte9 = unpackedImage[offset9++]; + if (offset10 >= unpackedImage.length) { + return true; + } + int byte10 = unpackedImage[offset10++]; + + // Byte 1 is the GTIA 9 byte, take the values as brightness + // values + int color1 = (byte9 & mask_4bit[0]) >>> shift_4bit[0]; + int color2 = (byte9 & mask_4bit[1]) >>> shift_4bit[1]; + + // Byte 2 is the GTIA 10 byte, take the values from the GTIA 10 + // palette + int color3 = (byte10 & mask_4bit[0]) >>> shift_4bit[0]; + int color4 = (byte10 & mask_4bit[1]) >>> shift_4bit[1]; + color3 = graphics10Colors[Atari8BitUtility.GRAPHICS_10_REGISTERS[color3]]; + color4 = graphics10Colors[Atari8BitUtility.GRAPHICS_10_REGISTERS[color4]]; + + // Put the color values in the row buffer, shifted by 1 pixel + int x = x1 << 2; + buffer1[x + 0] = color1; + buffer1[x + 1] = color1; + buffer1[x + 2] = color2; + buffer1[x + 3] = color2; + + buffer2[x + 1] = color3; + buffer2[x + 2] = color3; + buffer2[x + 3] = color4; + buffer2[x + 4] = color4; + } + + // Merge the two buffers into combined color values. + for (int x = 0; x < buffer1.length; x++) { + int atariColor = RBGUtility.combineRGBColor( + paletteMapper.getRGBColor(buffer1[x]), + paletteMapper.getRGBColor(buffer2[x])); + data.setDirectPixel(x, y1, atariColor); + } + } + return true; + + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapTIPConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapTIPConverter.java new file mode 100644 index 00000000..757505a3 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/LinearBitMapTIPConverter.java @@ -0,0 +1,170 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atari8bit; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.ImageConverterData; +import com.wudsn.ide.gfx.converter.PaletteMapper; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.RBGUtility; + +/** + * Layout in the TIP picture is 9 bytes header, graphics 9 picture, graphics 10 + * picture, graphics 11 picture + */ +public class LinearBitMapTIPConverter extends LinearBitMapConverter { + + public LinearBitMapTIPConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + if (bytes.length < 9) { + return false; + } + + int frameLength = (bytes[7] & 0xff) + ((bytes[8] & 0xff) << 8); + if (bytes[0] != 'T' || bytes[1] != 'I' || bytes[2] != 'P' + || bytes[3] != 1 || bytes[4] != 0 || bytes[5] == 0 + || (bytes[5] & 0xff) > 160 || bytes[6] == 0 + || (bytes[6] & 0xff) > 119 + || (9 + frameLength * 3) != bytes.length) { + return false; + } + + return true; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + int columns; + int rows; + columns = (bytes[5] & 0xff) / 4; + rows = (bytes[6] & 0xff); + setImageSizeAndPalette(data, columns, rows, Palette.TRUE_COLOR, null); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 4 + 1); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int rows = data.getParameters().getRows(); + int columns = data.getParameters().getColumns(); + PaletteMapper paletteMapper=new Atari8BitPaletteMapper(); + + // Assume the binary is already merged in case of a 160012 bytes HIP. + int offset9, offset10, offset11; + + // Assume grey scale colors by default. + int[] graphics10Colors = { 0, 0, 2, 4, 6, 8, 10, 12, 14 }; + + // Compute the offsets in the file. + int frameSize = rows * columns; + offset9 = 9; + offset10 = offset9 + frameSize; + offset11 = offset10 + frameSize; + + int[] buffer1 = new int[columns * 4 + 1]; + int[] buffer2 = new int[columns * 4 + 1]; + for (int y1 = 0; y1 < rows; y1++) { + for (int x1 = 0; x1 < columns; x1++) { + int byte1 = data.getSourceFileByte(BIT_MAP_FILE, offset9++); + if (byte1 < 0) { + return true; + } + int byte2 = data.getSourceFileByte(BIT_MAP_FILE, offset10++); + if (byte2 < 0) { + return true; + } + int byte3 = data.getSourceFileByte(BIT_MAP_FILE, offset11++); + if (byte3 < 0) { + return true; + } + // Byte 1 is the GTIA 9 byte, take the values as brightness + // values + int brightness1 = (byte1 & mask_4bit[0]) >>> shift_4bit[0]; + int brightness2 = (byte1 & mask_4bit[1]) >>> shift_4bit[1]; + + // Byte 2 is the GTIA 10 byte, take the values from the GTIA 10 + // palette + int brightness3 = (byte2 & mask_4bit[0]) >>> shift_4bit[0]; + int brightness4 = (byte2 & mask_4bit[1]) >>> shift_4bit[1]; + brightness3 = graphics10Colors[Atari8BitUtility.GRAPHICS_10_REGISTERS[brightness3]]; + brightness4 = graphics10Colors[Atari8BitUtility.GRAPHICS_10_REGISTERS[brightness4]]; + + // Byte 3 is the GTIA 11 byte, take the values as color values + int color1 = (byte3 & 0xf0); + int color2 = (byte3 & 0x0f) << 4; + + // Put the color values in the row buffer, shifted by 1 pixel + int x = x1 << 2; + buffer1[x + 0] = color1 | brightness1; + buffer1[x + 1] = color1 | brightness1; + buffer1[x + 2] = color2 | brightness2; + buffer1[x + 3] = color2 | brightness2; + + buffer2[x + 1] = color1 | brightness3; + buffer2[x + 2] = color1 | brightness3; + buffer2[x + 3] = color2 | brightness4; + buffer2[x + 4] = color2 | brightness4; + } + + // Merge the two buffers into combined color values. + for (int x = 0; x < buffer1.length; x++) { + int atariColor = RBGUtility.combineRGBColor( + paletteMapper.getRGBColor(buffer1[x]), + paletteMapper.getRGBColor(buffer2[x])); + data.setDirectPixel(x, y1, atariColor); + } + } + return true; + } + + public static void convertToFileData(ImageConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/altirra.act b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/altirra.act new file mode 100644 index 0000000000000000000000000000000000000000..59e9be3a6172fc2260fdd94576d084e8df965ea4 GIT binary patch literal 768 zcmb7??JpDn0Ed4vOIs5%ORFiDSy~NunMF0aV-{t&V-_*oF^d@Pm_?b~F^e*}V-{s{ z$1GxUm_JVuhxIi_h-+Z4-Wtv8yhDlC!tU%7K^1)sa!5sDwS%r zTC3IS^?IYxXfm1R=jS&zHb`CuLM#wxj|>+SdZ989jZtP@DYhedf|)YWYMo@KO~wHQ z->LXX!|%EfAP&edN1>g0rL$e5r*l_;=SXD0OmgIEZt_lPE^ABKTFd@cPWE$YG92cK zu*-&Xv889VLqM}@WRG|9SWxa%llbB$@V1w}zMl>DhCwWOXjk|v%&sXJ=@&>CjhpWrZ=<+^m=``hCnK9AtVFj%|xp7b8~2wJ!jy&0a$#C&F#v$&qs?Q9-o&wGx2=G+hBU?PrZ<6JQ= zS6hTM+sE~|WQ=(g&IMMkM>X!HbTMy)WizZ>W!nx1NI1H|%@@9*2#rU4rbT9veNmN5 zRg+g!cVPEu)aY!=>{{O1ZrLvD$hN=y8NkO1!H$S=Lz=HyL8xs-yr3ad)KMfEs*+7L zDVDoc+oKxJ>bPd$E`)#>kOFe-SK^2or?t4CKXlc2;)con*1X@Hjj#tyc*3j~y#Jby z|M{^m7>8qUDh=lg;9r4=1|)SLXUM8#%CTnIt!3M{kD(KcUu34)G1#7k;1WdFA&G@7 z9g2HUJ%Z*Lbe-mgVY}XG=kXQKgJmA+Z7x|jl4xFPlZ)M{<2r6!#dcJha9+aHc{`z6 zVWD&?9isAh%X6m)daG3bhs0L<{Pa2(4? zKncOef|SVEQpsdI;#l|cY^P$ak;Xu-9ZL3~frTy~bP3QMhxeJ7t|s_XNf#}Rn&{MC z8;fx}n%bSU5*)TF6hah_OBa!!kBXa6)T5;hJ%a=?ImX>IF2Oc2XLqjL*?`B; zsPE_RydMjZi)(RMll(>IAKdthJ0Lia#GV_{1;zy;W_Z0i#|)Lx4ob0)GVjRnEuQKDU)>&suCsWPgtta)?1oI`dx3a_EG1oGQ>*np=`(eXlyzAK#0x!| z#}M@(cLYVFC?7}TG+xeXIeF=_gLS=y>$wsWkLx!6m3vPp+#}k;gi2BDq$F`MJ!K^? z6UAk?TaU*C11`lV)L?Urk!h;2xy-~uZboaNGWslRRNH;09pmRclYbwT;$#^lO(-Lf zxEskKoAl0X(N8j?WKlPiTW)Nm`@OQtP}%0sGE0|t)~s@$;A9`-$B;(Qbu-pKxYf{~ z<`~HcI%h4AGNWYM_D_9t{iWgmK`O!1QkQQ<7BMM#98(3)syTY+^CV~G aRnA0__gq!ray@_bNd!8h(4ByODd8VotA|S#PCq@JS4kg>c literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/default.act b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/default.act new file mode 100644 index 0000000000000000000000000000000000000000..3ee8ebf8feab6c6a7ad9f9366c9555dfc5801949 GIT binary patch literal 768 zcmW;GjWg2$0EcmDV~G^9Xq%Tt>JmA+Z7x|jl4xFPlZ)M{<2r6!#dcJha9+aHc{`z6 zVWD&?9isAh%X6m)daG3bhs0L<{Pa2(4? zKncOef|SVEQpsdI;#l|cY^P$ak;Xu-9ZL3~frTy~bP3QMhxeJ7t|s_XNf#}Rn&{MC z8;fx}n%bSU5*)TF6hah_OBa!!kBXa6)T5;hJ%a=?ImX>IF2Oc2XLqjL*?`B; zsPE_RydMjZi)(RMll(>IAKdthJ0Lia#GV_{1;zy;W_Z0i#|)Lx4ob0)GVjRnEuQKDU)>&suCsWPgtta)?1oI`dx3a_EG1oGQ>*np=`(eXlyzAK#0x!| z#}M@(cLYVFC?7}TG+xeXIeF=_gLS=y>$wsWkLx!6m3vPp+#}k;gi2BDq$F`MJ!K^? z6UAk?TaU*C11`lV)L?Urk!h;2xy-~uZboaNGWslRRNH;09pmRclYbwT;$#^lO(-Lf zxEskKoAl0X(N8j?WKlPiTW)Nm`@OQtP}%0sGE0|t)~s@$;A9`-$B;(Qbu-pKxYf{~ z<`~HcI%h4AGNWYM_D_9t{iWgmK`O!1QkQQ<7BMM#98(3)syTY+^CV~G aRnA0__gq!ray@_bNd!8h(4ByODd8VoMDPrEwYs3pOoH`8IX$o*Ya;8Jtcubw1~$}#dPwFs$oh;4IEeG!;99##H6so`r*=bzF+)J~yo9xqlgzJd1$-9eAjWTfdc z^G(@Y8y??9AoLN5!z9vpnLJ&gEKqG$0F6KwFa%7)b0;f!KPSeZF2$@p*RH?Jb)w#H zt|NSTAYpwn6CaAOQiZ?GKo2ki%)ojN*IAeEeN-4~Esk@Rrg_WrLzUdPO@11L`4Dp< zluU^zG*udwrRD z*Vrbvc$5qQwNON>l+c@GjBW*USjBz|-Xa7)Ap#^@-o=XeIH`qsX~l;arpKBWq}o^H zxiyvtbTvc{btX;^W-m;Y{Ftx7YAZJSw!Ehr3D(*bV|XCN{BW-Qi88m-^#Pt8k--Cr zF_YOTA4+mpYRdk$)}yZjV*{8a7l_7XqH~=X-%+=`ukHBA$m5Ac&@+eVm+r~016d!V zINy@${^hizv>&w-Xwy7T^!+K&kOPl_haNailemaiz*Z>Vq=c;IAC uyzEJc8;K1dsgWcvQKLLtr=i5Sv&M3;)p4rNV}2}XbvAnAOEP}50M38C{kIYT literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/gray.act b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/gray.act new file mode 100644 index 0000000000000000000000000000000000000000..3422b067ff3bb0bbab45b684bb88bef9dbd16f2b GIT binary patch literal 768 zcmZQzU=R=xP*6}XFfed%a0mzpNJvO1C@5%XXqYfz!h!`0Hf-2%;J|?k7cM+_@ZiIT O4-BK~N5f|rr3V1v@MsVK literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/green.act b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/green.act new file mode 100644 index 0000000000000000000000000000000000000000..60858b3e517707c25b205fe7b76705a9a608cee4 GIT binary patch literal 768 zcmeIw(Gw_z(dqwwz4IV&aT7^AynOs*3YA7@ LEPedxv(FC`QT2a; literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/jakub.act b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/jakub.act new file mode 100644 index 0000000000000000000000000000000000000000..396a5cf31fe615906da1aacade375c571e344f62 GIT binary patch literal 768 zcmWO0dn^=i00;12Yt7JBO$}`^8QSWSp~;1z$t8Itmpqe8p2;Q8zmCNNyrBba{0|+oCkrpJ$f#kSrJ@D6i9AVm=Xw{SL^rqPJeO1txrs$RK6b$8I zsuT+~SZiLaZ&UycKqoK=Ou$=%9kPcTYh0UV(U$MfSLQxi z=ReaPvDlxuI+l%(#rR%@wI-k&7y_nXyOZZ?An-jT3bU2OyUH?r6@_6cUi^k21ENAm zc#sL85J4ruh73@^(11rdB%s=gXs!~vuZ$685wHA$~5J;Xb+vp(dGemPP4~ z6$Ks*<$;~`QG*@H69c((<0ZdltFhFA_1;bItw}<3x5t|7O|v|Z?|8J#<3wGccY9Pw ze{$?tZraC^{O{FeYb|x?ZO3pwrpZ~NeUa#2C1y9ZtncVKKQ#4vVio+%DdweT>f0dp zr)chvl-hrJZ7A(S%_v%R&Jd#jVjfBCl89Rl@q3^h{#ZYu*(|fiy6BB_#e1)YFTtHF zF@s2*0DBHxiZh{l5n3>z#}Gy;VY0WdxH~wt`}l1Kg?-1wqbH>^=j4l*l&ja&xCPvG wu_Qi@B-De%1(NhAQjn}&o~vJ9V%AY@J<#Gj-s?3x9K19gv;H*|f7k%`KT?#pnE(I) literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/laoo.act b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/atari8bit/palettes/laoo.act new file mode 100644 index 0000000000000000000000000000000000000000..5f33ecab99d740b8d842e58d4596b4c0595c5d77 GIT binary patch literal 768 zcmV+b1ONO0000gR4jmmGE-fxTJw8uPPhVbNaBpvVdU=bAi=3OAt*orPySvTI&D`7E z?Ck6{002M*08bPEUnKx;Gys1^1CCV_pJpSeaV@%nK+2L(+oNIXvT*vtg8tHx|Kp)Q z002t>09gqDX&D1}DH4b}BbZ7wsar*}WlzL*Vbq6m<(Px?r;`1+qyNXV|JTAj002n< z09OSIXcZfGB`SzEJeWpIs8?OGVQ0f~dDDZ5Oobo!t7a?f$*`|IPj^07f?eP(}e?RSs@t z9({E$j)gy;l~AsrTez`o%E5fv(v9oko%r&u{`|fF{>}dx0A3^jXEXzLL=%NmB9vq^ zrF28Jg;m6lU(TR#;IM)4!IJ#Yq5k2r|M0^9{L=pb09*hGW(gQ|8YzS+IFmX_q)J(| zTx!E+bj^2#--nj(n5X=xw*I-t|H#(=*ysNM3q=4HPXHxd2{vsQMSLk%jX7qWOLweR zfwpIo$akXIh_mUK!}qDv{0YXm)&GV97yu6?03S2}FGT=9Q~*z90AO_haE1YUkP3{U9GtN%t-?ON(M`?bUfuC- z?frfp2>>b<068T9Nj3mjMF4450C{ErigyT(c;lOh^Q)NuyQu%mxc}S8|LfRC02NmN zC1(&dcOXTFFjbd8Wv5Vew_t_GaFy49rRR{f_n^i9u+{&-<^Rz2|KR^X06V@SO1ftpESK|NqSY|J?sC0AfD?a!(F|UmlWg zE~0-vvX4%}pI*|hZsNaw^3RU{-=6>PuK)kO|NqYa|K9%?0COk?gE$tGNG79LHnV6( z!+2KHh-TxMcJru)|G1X_$fp0;w*TnH|M=Gb|K|Sy1aJ=&fFC4~FEpS(M6gd(z+Yt0 zZ*<^)gz%4)|DUA)ueATa#Q)FK|KH^Q@AUrw6IuWxY6vrW7(WH)Yn8W|5)Bm{R|H$+I*#G|kA~gUqMF2uo3Q}bnVs$EVg*t+jN|L2oqP1$W z#d^Zkiqhqp;`OTX|GNMG%K!fWEeQZU830Ww23U03}BNHCF&dX8=`q0A+^?b(b22rz(}VI;F=-wbxq3=W5mWdgcF$ z_5Ye482~OR06sYYPDub>SpaTn0DgH5j)@(fnJuoVJ-)e3&dFWg*=_FWeg654|Nosd y3IIeJ08}afWI6zJN&|#i6O?Krq-zfo z|NsACE&yyh0D4LQh*$uWXAGrw8?uBd!IV16okQBKQ|P;5_{(zt*nj`%kN@|d|NpLR zBmj3X0E9pTl1>qxT_Ue+F}!<0%!*LelUwAYY4Wjo|H6s?&zJw-rvL4=|NX>u78rpe zB#$vPoj^mXPEfdBV8(54)qQ{7hllNzmi(lp|FpIL!o>g4)BoV%|L^c(4smW9e0wU2 ziaD5;N2R4#wXFSsF`K$v< zNV=O?$Ej!4xOe5kfbGzb{NJDd?yvv+z5oBr|NqZWpFKpaOH;a8VaI51)pvg4 zhmP`)m-?2b|E{(Fzr_E|(*N4y|LXDo`u_h9HG~{NjVw@`I$o+sY`0i@#b=7rcA4UU zqU(>c`JTZ4ti_=)KX4ICc_CSdFKCuNb)-#$vRsnEY@yP0tJ#CP z=ab3yqS*hj=KsL;|Iq*c-v9pqSr`CiCJ%Bo9f3qFj!-+DU`niSS-XB?#D{XzmV)A? zlJT{l{==^S(!T%V&j0ZTTmTek03vk&GJ^m=kqb|t8(yv|ZoNBq#zcqJQ z|NoUsJOEfp0A*JIbY%d6bO4Zp2cMA^uAwHksxHU6KGnxf<=0*EHL{^Q$?OJz7aBw$HsQZPP_0B*c zWlzRqE>a;gss59d!b;Uj5w$j}p*tu%Xq;lBN=aV(UqdF@9LV z_mBGoy*Y&R6|oeFypUC;NUge74c$6!ZLo8J6=~;8cgWsrkA8o9j$ShRXbE!`l{~=$ zHU9<*4{L2$;NXEnD27WDur}gd NA_gSKT+%`<Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.atarist; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.generic.LinearBitMapConverter; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +/** + * TODO Implement Atari ST Conversion + * + * @author Peter Dell + * + */ +public class InterleavedBitMap4Planes extends LinearBitMapConverter { + + public InterleavedBitMap4Planes() { + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException("Parameter 'bytes' must not be null."); + } + return bytes.length > 0 && bytes.length % 80 == 0; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException("Parameter 'bytes' must not be null."); + } + + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors(PaletteType.ATARI_DEFAULT, Palette.GTIA_GREY_1, null); + setImageSizeAndPalette(data, 40, 192, Palette.GTIA_GREY_1, paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() * 16); + data.setImageDataHeight(data.getParameters().getRows()); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + + final int[] mask_1bit = new int[] { 0x8000, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200, 0x0100, 0x80, 0x40, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; + final int[] shift_1bit = new int[] { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; + + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + + int offset_line = 0; + int xpixels = 16; + + for (int y1 = data.getParameters().getRows() - 1; y1 >= 0; y1--) { + int offset = offset_line; + offset_line += 27 * 8; + + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int w1 = getWord(data, offset); + if (w1 < 0) { + return true; + } + offset += 2; + int w2 = getWord(data, offset); + if (w2 < 0) { + return true; + } + offset += 2; + int w3 = getWord(data, offset); + if (w3 < 0) { + return true; + } + offset += 2; + int w4 = getWord(data, offset); + if (w4 < 0) { + return true; + } + offset += 2; + + for (int x2 = 0; x2 < 16; x2++) { + int x = x1 * xpixels + 15 - x2; + int shift = shift_1bit[x2]; + int mask = mask_1bit[x2]; + int color = ((w1 & mask) >>> shift) + (((w2 & mask) >>> shift) << 1) + + (((w3 & mask) >>> shift) << 2) + (((w4 & mask) >>> shift) << 3); + data.setPalettePixel(x, y1, color); + } + + } + } + return true; + } + + private int getWord(FilesConverterData data, int offset) { + int b2 = data.getSourceFileByte(BIT_MAP_FILE, offset + 1); + if (b2 < 0) { + return b2; + } + int b1 = data.getSourceFileByte(BIT_MAP_FILE, offset); + if (b1 < 0) { + return b1; + } + return b1 + (b2 << 8); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/C64PaletteMapper.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/C64PaletteMapper.java new file mode 100644 index 00000000..df290460 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/C64PaletteMapper.java @@ -0,0 +1,57 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.c64; + +import com.wudsn.ide.gfx.converter.PaletteMapper; + +// TODO C64PaletteMapper is not yet used. Will be required for Koala pictures etc. +/** + * C64 to Atari Mapping + * + *
+ *  0	Black		0,0	0,2
+ *  1	White		0,15	0,14
+ *  2	Red		3,5	3,6
+ *  3	Cyan		9,11	9,12
+ *  4	Purple		4,7	5,8
+ *  5	Green		11,8	11,10
+ *  6	Blue		7,5	7,6
+ *  7	Yellow		14,14	14,14
+ *  8	Orange		1,5	1,12 (Light Brown)
+ *  9	Brown		14,4	1,8
+ * 10	Light Red	3,10	3,12 (Pink)
+ * 11	Dark Grey	0,6	0,6
+ * 12	Med Grey	0,9	0,10
+ * 13	Light Green	11,13	11,14
+ * 14	Light Blue	6,10	7,10
+ * 15	Light Grey	0,11	0,12
+ * 
+ */ +public final class C64PaletteMapper extends PaletteMapper{ + + /** + * Creation is private. + */ + public C64PaletteMapper() { + super(16); + // From http://unusedino.de/ec64/technical/misc/vic656x/colors/index.html + loadPalette("pepto.pal"); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/C64Utility.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/C64Utility.java new file mode 100644 index 00000000..3d1509a9 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/C64Utility.java @@ -0,0 +1,86 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.c64; + +import com.wudsn.ide.base.common.NumberFactory; + +/** + * C64Utility color codes as defined by VIC II. + * + * @author Peter Dell + * + */ +public final class C64Utility { + + public static final Integer BLACK = NumberFactory.getInteger(0); + public static final Integer WHITE = NumberFactory.getInteger(1); + public static final Integer RED = NumberFactory.getInteger(2); + public static final Integer CYAN = NumberFactory.getInteger(3); + public static final Integer PINK = NumberFactory.getInteger(4); + public static final Integer GREEN = NumberFactory.getInteger(5); + public static final Integer BLUE = NumberFactory.getInteger(6); + public static final Integer YELLOW = NumberFactory.getInteger(7); + public static final Integer ORANGE = NumberFactory.getInteger(8); + public static final Integer BROWN = NumberFactory.getInteger(9); + public static final Integer LIGHT_RED = NumberFactory.getInteger(10); + public static final Integer DARK_GRAY = NumberFactory.getInteger(11); + public static final Integer MEDIUM_GRAY = NumberFactory.getInteger(12); + public static final Integer LIGHT_GREEN = NumberFactory.getInteger(13); + public static final Integer LIGHT_BLUE = NumberFactory.getInteger(14); + public static final Integer LIGHT_GRAY = NumberFactory.getInteger(15); + + /** + * Determines if a byte array represents a valid C64 charset. + * + * @param bytes + * The byte array, may be empty, not null. + * @return true if the byte array represents a valid C64 + * charset, false otherwise. + * + * @since 1.6.0 + */ + public static boolean isC64Charset(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 2048 || bytes.length % 0x100 == 2 + || (bytes.length > 2 && bytes[0] == 0x00 && bytes[1] == 0x38); + } + + /** + * Determines if a byte array represents a valid C64 sprite (or many). + * + * @param bytes + * The byte array, may be empty, not null. + * @return true if the byte array represents a valid C64 sprite + * (or many), false otherwise. + * + * @since 1.6.0 + */ + public static boolean isC64Sprite(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + return bytes.length == 64 + || (bytes.length > 2 + 64 && bytes[0] == 0x00); + } +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteConverter.java new file mode 100644 index 00000000..ffbe4d83 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteConverter.java @@ -0,0 +1,34 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.c64; + +import com.wudsn.ide.gfx.converter.Converter; + +public abstract class SpriteConverter extends Converter { + + /** + * Source file ids. + */ + public static final int SPRITE_FILE = 0; + + + protected SpriteConverter() { + } +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteHiresConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteHiresConverter.java new file mode 100644 index 00000000..67db2f56 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteHiresConverter.java @@ -0,0 +1,119 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.c64; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class SpriteHiresConverter extends SpriteConverter { + + public SpriteHiresConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + boolean c64Sprite = C64Utility.isC64Sprite(bytes); + return c64Sprite; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + int columns = 8; + int lineSize = columns * 64; + int rows; + if (bytes.length % 0x100 == 2) { + data.getParameters().getSourceFile(SpriteConverter.SPRITE_FILE) + .setOffset(2); + rows = (bytes.length - 2 + lineSize - 1) / lineSize; + + } else { + rows = (bytes.length + lineSize - 1) / lineSize; + } + + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_1, null); + setImageSizeAndPalette(data, columns, rows, Palette.HIRES_1, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (3 * 8 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (21 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 3 * 8 + data.getParameters().getSpacingWidth(); + int ypixels = 21 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < (data.getParameters().getColumns()); x1++) { + for (int y2 = 0; y2 < 21; y2++) { + for (int x2 = 0; x2 < 3; x2++) { + int b = data.getSourceFileByte(SPRITE_FILE, offset++); + if (b < 0) { + return true; + } + + int y = y1 * ypixels + y2; + for (int x3 = 0; x3 < 8; x3++) { + int x = x1 * xpixels + x2 * 8 + x3; + + int color = (b & mask_1bit[x3]) >>> shift_1bit[x3]; + data.setPalettePixel(x, y, color); + } + } + } + offset++; // 64th byte + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteMultiColorConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteMultiColorConverter.java new file mode 100644 index 00000000..b67d0103 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/SpriteMultiColorConverter.java @@ -0,0 +1,72 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.c64; + +import com.wudsn.ide.gfx.converter.FilesConverterData; + +public class SpriteMultiColorConverter extends SpriteConverter { + + public SpriteMultiColorConverter() { + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (3 * 4 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (21 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 3 * 4 + data.getParameters().getSpacingWidth(); + int ypixels = 21 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < (data.getParameters().getColumns()); x1++) { + for (int y2 = 0; y2 < 21; y2++) { + for (int x2 = 0; x2 < 3; x2++) { + int b = data.getSourceFileByte(SPRITE_FILE, offset++); + if (b < 0) { + return true; + } + + int y = y1 * ypixels + y2; + for (int x3 = 0; x3 < 4; x3++) { + int x = x1 * xpixels + x2 * 4 + x3; + + int color = (b & mask_2bit[x3]) >>> shift_2bit[x3]; + data.setPalettePixel(x, y, color); + } + } + } + offset++; // 64th byte + } + } + return true; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/palettes/pepto.pal b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/c64/palettes/pepto.pal new file mode 100644 index 0000000000000000000000000000000000000000..5a54b1360bdca040bfb8db87ac53693cd5200a44 GIT binary patch literal 48 zcmZQzVEF(4e}=hs!IDk+wrvr;&ZZibJC5h)`>Q%zGR#Vkba8RX$;p{@sU;_F>(r@J E0qO1(qW}N^ literal 0 HcmV?d00001 diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/BitMapConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/BitMapConverter.java new file mode 100644 index 00000000..6f99d075 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/BitMapConverter.java @@ -0,0 +1,35 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.Converter; + +public abstract class BitMapConverter extends Converter { + + /** + * Source file ids. + */ + public static final int BIT_MAP_FILE = 0; + + protected BitMapConverter() { + + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapConverter.java new file mode 100644 index 00000000..2c6c2a51 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapConverter.java @@ -0,0 +1,36 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.Converter; + +public abstract class CharMapConverter extends Converter { + + /** + * Source file ids. + */ + public static final int CHAR_SET_FILE = 0; + public static final int CHAR_MAP_FILE = 1; + + public CharMapConverter() { + + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapHiresConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapHiresConverter.java new file mode 100644 index 00000000..2096957c --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapHiresConverter.java @@ -0,0 +1,76 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.FilesConverterData; + +public class CharMapHiresConverter extends CharMapConverter { + + public CharMapHiresConverter() { + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (8 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (8 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + int offset = 0; + int xpixels = 8 + data.getParameters().getSpacingWidth(); + int ypixels = 8 + data.getParameters().getSpacingWidth(); + + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int c = data.getSourceFileByte(CHAR_MAP_FILE, offset++) & 127; + if (c < 0) { + return true; + } + int charset_offset = c * 8; + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(CHAR_SET_FILE, + charset_offset++); + + if (b < 0) { + return true; + } + int y = y1 * ypixels + y2; + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + x2; + + int color = (b & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + return false; + + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapMultiColorConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapMultiColorConverter.java new file mode 100644 index 00000000..04681b13 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharMapMultiColorConverter.java @@ -0,0 +1,77 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.FilesConverterData; + +public class CharMapMultiColorConverter extends CharMapConverter { + + public CharMapMultiColorConverter() { + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (4 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (8 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 4 + data.getParameters().getSpacingWidth(); + int ypixels = 8 + data.getParameters().getSpacingWidth(); + +// int[] fonts = new int[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, +// 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 3, 0, 1, 4,0 }; + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + int c = data.getSourceFileByte(CHAR_MAP_FILE, offset++) & 127; + if (c < 0) { + return true; + } + int charset_offset = c * 8; // + fonts[y1] * 1024; + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(CHAR_SET_FILE, + charset_offset++); + + if (b < 0) { + return true; + } + int y = y1 * ypixels + y2; + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + + int color = (b & mask_2bit[x2]) >>> shift_2bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1HiresConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1HiresConverter.java new file mode 100644 index 00000000..20257c2b --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1HiresConverter.java @@ -0,0 +1,123 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.atari8bit.Atari8BitUtility; +import com.wudsn.ide.gfx.converter.c64.C64Utility; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class CharSet1x1HiresConverter extends CharSetConverter { + + public CharSet1x1HiresConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + boolean atariCharset = Atari8BitUtility.isAtariCharset(bytes); + boolean c64Charset = C64Utility.isC64Charset(bytes); + return atariCharset || c64Charset; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + int columns = 32; + int lineSize = columns * 8; + int rows; + if ((bytes.length == 1024 + 6 && Atari8BitUtility + .getLengthFromBinaryHeader(bytes, 0) == 1024)) { + data.getParameters().getSourceFile(CharSetConverter.CHAR_SET_FILE) + .setOffset(6); + + rows = (bytes.length - 6 + lineSize - 1) / lineSize; + } else if (bytes.length % 0x100 == 2 + || (bytes.length > 2 && bytes[0] == 0x00 && bytes[1] == 0x38)) { + data.getParameters().getSourceFile(CharSetConverter.CHAR_SET_FILE) + .setOffset(2); + rows = (bytes.length - 2 + lineSize - 1) / lineSize; + + } else { + rows = (bytes.length + lineSize - 1) / lineSize; + } + + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_1, null); + setImageSizeAndPalette(data, columns, rows, Palette.HIRES_1, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (8 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (8 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 8 + data.getParameters().getSpacingWidth(); + int ypixels = 8 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(CHAR_SET_FILE, offset++); + if (b < 0) { + return true; + } + int y = y1 * ypixels + y2; + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + x2; + int color = (b & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1HiresConverter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1HiresConverter.js new file mode 100644 index 00000000..b1f8f6b6 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1HiresConverter.js @@ -0,0 +1,28 @@ +function convertToFileData(data) { + var columns = data.getImageDataWidth() / 8; + var rows = data.getImageDataHeight() / 8; + var chars = 256; + + var char = 0; + var bytes = []; + var offset = 0; + for (var r = 0; r < rows; r++) { + for (var c = 0; c < columns; c++) { + if (char < chars) { + for (var l=0;l<8;l++) { + var b = 0; + for (var p = 0; p < 8; p++) { + var color; + color = data.getPixel(c*8+p, r*8+l); + if (color != 0) { + b = b | 1 << 7 - p; + } + } + bytes[offset++] = b; + } + char++; + } + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1MultiColorConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1MultiColorConverter.java new file mode 100644 index 00000000..88a7fefe --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1MultiColorConverter.java @@ -0,0 +1,69 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.FilesConverterData; + +public class CharSet1x1MultiColorConverter extends CharSetConverter { + + public CharSet1x1MultiColorConverter() { + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (4 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (8 + data.getParameters().getSpacingWidth())); + } + + + @Override + public boolean convertToImageData(FilesConverterData data) { + + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 4 + data.getParameters().getSpacingWidth(); + int ypixels = 8 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(CHAR_SET_FILE, offset++); + if (b < 0) { + return true; + } + int y = y1 * ypixels + y2; + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + int color = (b & mask_2bit[x2]) >>> shift_2bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + return true; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1MultiColorConverter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1MultiColorConverter.js new file mode 100644 index 00000000..18a5307d --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet1x1MultiColorConverter.js @@ -0,0 +1,29 @@ +function convertToFileData(data) { + var columns = data.getImageDataWidth() / 8; + var rows = data.getImageDataHeight() / 8; + var chars = 256; + + var char = 0; + var bytes = []; + var offset = 0; + for (var r = 0; r < rows; r++) { + for (var c = 0; c < columns; c++) { + if (char < chars) { + for (var l=0;l<8;l++) { + var b; + var x,y,c1,c2,c3,c4; + x = c*4; + y = r*8 + l; + c1 = data.getPixel(x, y) & 0x3; + c2 = data.getPixel(x+1, y) & 0x3; + c3 = data.getPixel(x+2, y) & 0x3; + c4 = data.getPixel(x+3, y) & 0x3; + b = c1 << 6 | c2 << 4 | c3 << 2 | c4; + bytes[offset++] = b; + } + char++; + } + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x1HiresConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x1HiresConverter.java new file mode 100644 index 00000000..bf42fee1 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x1HiresConverter.java @@ -0,0 +1,127 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.atari8bit.Atari8BitUtility; +import com.wudsn.ide.gfx.converter.c64.C64Utility; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +public class CharSet2x1HiresConverter extends CharSetConverter { + + public CharSet2x1HiresConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + boolean atariCharset = Atari8BitUtility.isAtariCharset(bytes); + boolean c64Charset =C64Utility.isC64Charset(bytes); + return atariCharset || c64Charset; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + int columns = 16; + int lineSize = columns * 8*2; + int rows; + if ((bytes.length == 1024 + 6 && Atari8BitUtility + .getLengthFromBinaryHeader(bytes, 0) == 1024)) { + data.getParameters().getSourceFile(CharSetConverter.CHAR_SET_FILE) + .setOffset(6); + + rows = (bytes.length - 6 + lineSize - 1) / lineSize; + } else if (bytes.length % 0x100 == 2) { + data.getParameters().getSourceFile(CharSetConverter.CHAR_SET_FILE) + .setOffset(2); + rows = (bytes.length - 2 + lineSize - 1) / lineSize; + + } else { + rows = (bytes.length + lineSize - 1) / lineSize; + } + + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_1, null); + setImageSizeAndPalette(data, columns, rows, Palette.HIRES_1, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth((data.getParameters().getColumns()) + * (8 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight((data.getParameters().getRows()) + * (16 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 8 + data.getParameters().getSpacingWidth(); + int ypixels = 16 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + for (int cy = 0; cy < 2; cy++) { + for (int cx = 0; cx < 1; cx++) { + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(CHAR_SET_FILE, + offset++); + if (b < 0) { + return true; + } + int y = y1 * ypixels + cy * 8 + y2; + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + cx * 8 + x2; + int color = (b & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x1HiresConverter.js b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x1HiresConverter.js new file mode 100644 index 00000000..7874cd36 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x1HiresConverter.js @@ -0,0 +1,28 @@ +function convertToFileData(data) { + var columns = data.getImageDataWidth() / 8; + var rows = data.getImageDataHeight() / 16; + var chars = 256; + + var char = 0; + var bytes = []; + var offset = 0; + for (var r = 0; r < rows; r++) { + for (var c = 0; c < columns; c++) { + if (char < chars) { + for (var l=0;l<16;l++) { + var b = 0; + for (var p = 0; p < 8; p++) { + var color; + color = data.getPixel(c*8+p, r*16+l); + if (color != 0) { + b = b | 1 << 7 - p; + } + } + bytes[offset++] = b; + } + char++; + } + } + } + data.setTargetFileObject(0, bytes); +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x2HiresConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x2HiresConverter.java new file mode 100644 index 00000000..9ed39fa9 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x2HiresConverter.java @@ -0,0 +1,128 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.atari8bit.Atari8BitUtility; +import com.wudsn.ide.gfx.converter.c64.C64Utility; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +// TODO Have base class for n*m charset converters +public class CharSet2x2HiresConverter extends CharSetConverter { + + public CharSet2x2HiresConverter() { + + } + + @Override + public boolean canConvertToImage(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + boolean atariCharset = Atari8BitUtility.isAtariCharset(bytes); + boolean c64Charset =C64Utility.isC64Charset(bytes); + return atariCharset || c64Charset; + } + + @Override + public void convertToImageSizeAndPalette(FilesConverterData data, + byte[] bytes) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + if (bytes == null) { + throw new IllegalArgumentException( + "Parameter 'bytes' must not be null."); + } + + int columns = 16; + int lineSize = columns * 8*4; + int rows; + if ((bytes.length == 1024 + 6 && Atari8BitUtility + .getLengthFromBinaryHeader(bytes, 0) == 1024)) { + data.getParameters().getSourceFile(CharSetConverter.CHAR_SET_FILE) + .setOffset(6); + + rows = (bytes.length - 6 + lineSize - 1) / lineSize; + } else if (bytes.length % 0x100 == 2) { + data.getParameters().getSourceFile(CharSetConverter.CHAR_SET_FILE) + .setOffset(2); + rows = (bytes.length - 2 + lineSize - 1) / lineSize; + + } else { + rows = (bytes.length + lineSize - 1) / lineSize; + } + + RGB[] paletteColors; + paletteColors = PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_1, null); + setImageSizeAndPalette(data, columns, rows, Palette.HIRES_1, + paletteColors); + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth((data.getParameters().getColumns()) + * (16 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight((data.getParameters().getRows()) + * (16 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 16 + data.getParameters().getSpacingWidth(); + int ypixels = 16 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + for (int cy = 0; cy < 2; cy++) { + for (int cx = 0; cx < 2; cx++) { + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(CHAR_SET_FILE, + offset++); + if (b < 0) { + return true; + } + int y = y1 * ypixels + cy * 8 + y2; + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + cx * 8 + x2; + int color = (b & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x2MultiColorConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x2MultiColorConverter.java new file mode 100644 index 00000000..7b5eb17f --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSet2x2MultiColorConverter.java @@ -0,0 +1,72 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.FilesConverterData; + +public class CharSet2x2MultiColorConverter extends CharSetConverter { + + public CharSet2x2MultiColorConverter() { + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth((data.getParameters().getColumns()) + * (8 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight((data.getParameters().getRows()) + * (16 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 8 + data.getParameters().getSpacingWidth(); + int ypixels = 16 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows() ; y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns() ; x1++) { + for (int cy = 0; cy < 2; cy++) { + for (int cx = 0; cx < 2; cx++) { + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(CHAR_SET_FILE, + offset++); + if (b < 0) { + return true; + } + int y = y1 * ypixels + cy * 8 + y2; + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + cx * 4 + x2; + int color = (b & mask_2bit[x2]) >>> shift_2bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSetConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSetConverter.java new file mode 100644 index 00000000..85c292f2 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/CharSetConverter.java @@ -0,0 +1,33 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.Converter; + +public abstract class CharSetConverter extends Converter { + + /** + * Source file ids. + */ + public static final int CHAR_SET_FILE = 0; + + public CharSetConverter() { + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/LinearBitMapConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/LinearBitMapConverter.java new file mode 100644 index 00000000..274fe60c --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/LinearBitMapConverter.java @@ -0,0 +1,31 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + + +public abstract class LinearBitMapConverter extends BitMapConverter { + + + + protected LinearBitMapConverter() { + + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMap2x2MultiColorConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMap2x2MultiColorConverter.java new file mode 100644 index 00000000..bad74331 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMap2x2MultiColorConverter.java @@ -0,0 +1,121 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.c64.C64Utility; + +public class TiledBitMap2x2MultiColorConverter extends TiledBitMapConverter { + + public TiledBitMap2x2MultiColorConverter() { + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (8 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (16 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + int[] colors = new int[] { 0x191d19, 0xfcf9fc, 0x933a4c, 0xb6fafa, + 0xd27ded, 0x6acf6f, 0x4f44d8, 0xfbfb8b, 0xd89c5b, 0x7f5307, + 0xef839f, 0x575753, 0xa3a7a7, 0xb7ffbbf, 0xa397ff, 0xefe9e7 }; + + for (int i = 0; i < 16; i++) { + int r = (colors[i] >> 16) & 0xff; + int g = (colors[i] >> 8) & 0xff; + int b = (colors[i] >> 0) & 0xff; + data.getImageData().palette.colors[i] = new RGB(r, g, b); + } + + int tile = 0; + int bitmap_offset = 0; + int video_ram_offset = 0; + int color_ram_offset = 0; + int xpixels = 8 + data.getParameters().getSpacingWidth(); + int ypixels = 16 + data.getParameters().getSpacingWidth(); + int rows = data.getParameters().getRows(); + int columns = data.getParameters().getColumns(); + + int[] cell_colors = new int[] { 0, 1, 2, 3 }; + + for (int y1 = 0; y1 < rows; y1++) { + for (int x1 = 0; x1 < columns; x1++) { + video_ram_offset = tile * 4; + color_ram_offset = tile * 2; + for (int y2 = 0; y2 < 2; y2++) { + for (int x2 = 0; x2 < 2; x2++) { + int v = data.getSourceFileByte(VIDEO_RAM_FILE, + video_ram_offset + y2 * 2 + x2); + int c = data.getSourceFileByte(COLOR_RAM_FILE, + color_ram_offset + y2); + if (v >= 0 && c >= 0) { + cell_colors[1] = (v >> 4) & 0xf; + cell_colors[2] = (v >> 0) & 0xf; + if (x2 == 0) { + cell_colors[3] = (c >> 4) & 0xf; + } else { + cell_colors[3] = (c >> 0) & 0xf; + + } + + } else { + cell_colors[1] = C64Utility.RED.intValue(); + cell_colors[2] = C64Utility.LIGHT_RED.intValue(); + cell_colors[3] = C64Utility.WHITE.intValue(); + } + + for (int y3 = 0; y3 < 8; y3++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, + bitmap_offset++); + if (b < 0) { + return true; + } + + int y = y1 * ypixels + y2 * 8 + y3; + for (int x3 = 0; x3 < 4; x3++) { + int x = x1 * xpixels + x2 * 4 + x3; + + int color = (b & mask_2bit[x3]) >>> shift_2bit[x3]; + data.setPalettePixel(x, y, cell_colors[color]); + } + } + + } + } + color_ram_offset += 4; + video_ram_offset += 4; + tile++; + + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapConverter.java new file mode 100644 index 00000000..62e71964 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapConverter.java @@ -0,0 +1,35 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + + +public abstract class TiledBitMapConverter extends BitMapConverter { + + /** + * Source file ids. + */ + public static final int VIDEO_RAM_FILE = 1; + public static final int COLOR_RAM_FILE = 2; + + protected TiledBitMapConverter() { + + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapHiresConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapHiresConverter.java new file mode 100644 index 00000000..78a8ffdc --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapHiresConverter.java @@ -0,0 +1,67 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.FilesConverterData; + +public class TiledBitMapHiresConverter extends TiledBitMapConverter { + + public TiledBitMapHiresConverter() { + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (8 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (8 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 8 + data.getParameters().getSpacingWidth(); + int ypixels = 8 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b < 0) { + return true; + } + int y = y1 * ypixels + y2; + for (int x2 = 0; x2 < 8; x2++) { + int x = x1 * xpixels + x2; + int color = (b & mask_1bit[x2]) >>> shift_1bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapMultiColorConverter.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapMultiColorConverter.java new file mode 100644 index 00000000..a2f7be8e --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/converter/generic/TiledBitMapMultiColorConverter.java @@ -0,0 +1,68 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.converter.generic; + +import com.wudsn.ide.gfx.converter.FilesConverterData; + +public class TiledBitMapMultiColorConverter extends TiledBitMapConverter { + + public TiledBitMapMultiColorConverter() { + + } + + @Override + public void convertToImageDataSize(FilesConverterData data) { + data.setImageDataWidth(data.getParameters().getColumns() + * (4 + data.getParameters().getSpacingWidth())); + data.setImageDataHeight(data.getParameters().getRows() + * (8 + data.getParameters().getSpacingWidth())); + } + + @Override + public boolean convertToImageData(FilesConverterData data) { + if (data == null) { + throw new IllegalArgumentException( + "Parameter 'data' must not be null."); + } + + int offset = 0; + int xpixels = 4 + data.getParameters().getSpacingWidth(); + int ypixels = 8 + data.getParameters().getSpacingWidth(); + + for (int y1 = 0; y1 < data.getParameters().getRows(); y1++) { + for (int x1 = 0; x1 < data.getParameters().getColumns(); x1++) { + for (int y2 = 0; y2 < 8; y2++) { + int b = data.getSourceFileByte(BIT_MAP_FILE, offset++); + if (b < 0) { + return true; + } + int y = y1 * ypixels + y2; + for (int x2 = 0; x2 < 4; x2++) { + int x = x1 * xpixels + x2; + + int color = (b & mask_2bit[x2]) >>> shift_2bit[x2]; + data.setPalettePixel(x, y, color); + } + } + } + } + return true; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/FilesConverterDataView.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/FilesConverterDataView.java new file mode 100644 index 00000000..d38aa200 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/FilesConverterDataView.java @@ -0,0 +1,327 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.editor; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.preference.ColorSelector; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.TraverseEvent; +import org.eclipse.swt.events.TraverseListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; + +import com.wudsn.ide.base.common.NumberUtility; +import com.wudsn.ide.base.gui.Action; +import com.wudsn.ide.base.gui.FilePathField; +import com.wudsn.ide.base.gui.IntegerField; +import com.wudsn.ide.base.gui.MessageManager; +import com.wudsn.ide.base.gui.SWTFactory; +import com.wudsn.ide.gfx.Texts; +import com.wudsn.ide.gfx.converter.Converter; +import com.wudsn.ide.gfx.converter.ConverterCommonParameters; +import com.wudsn.ide.gfx.converter.ConverterSourceFileDefinition; +import com.wudsn.ide.gfx.converter.FilesConverterData; +import com.wudsn.ide.gfx.converter.FilesConverterParameters; +import com.wudsn.ide.gfx.converter.FilesConverterParameters.SourceFile; +import com.wudsn.ide.gfx.gui.AspectField; +import com.wudsn.ide.gfx.gui.ConverterIdField; +import com.wudsn.ide.gfx.gui.SourceFileView; +import com.wudsn.ide.gfx.model.ConverterDirection; + +final class FilesConverterDataView { + + public final class Actions { + + /** + * Creation is private. + */ + private Actions() { + } + + public static final int FIND_DEFAULT_FILE_CONVERTER = 999; + public static final int CREATE_CONVERSION = 1000; + public static final int REFRESH = 1001; + public static final int SAVE_IMAGE = 1002; + public static final int CONVERTER_ID_CHANGED = 1003; + public static final int PARAMETER_CHANGED = 1100; + public static final int PALETTE_COLORS_CHANGED = 1101; + } + + private FilesConverterData filesConverterData; + private FilesConverterParameters filesConverterParameters; + + private Composite composite; + + private ConverterIdField converterIdField; + + private ToolItem findDefaultFileConverterButton; + private ToolItem createConversionButton; + private ToolItem refreshButton; + private ToolItem saveImageButton; + + private static final int SOURCE_FILES = 3; + private List sourceFileViews; + + private IntegerField columnsField; + private IntegerField rowsField; + + private Label spacingColorSelectorLabel; + private ColorSelector spacingColorSelector; + private IntegerField spacingWidthField; + + private FilePathField imageFilePathField; + private AspectField imageAspectField; + private IntegerField imageDataWidthField; + private IntegerField imageDataHeightField; + + public FilesConverterDataView(final GraphicsEditor editor, Composite parent, FilesConverterData filesConverterData) { + if (parent == null) { + throw new IllegalArgumentException("Parameter 'parent' must not be null."); + } + + if (filesConverterData == null) { + throw new IllegalArgumentException("Parameter 'filesConverterData' must not be null."); + } + this.filesConverterData = filesConverterData; + this.filesConverterParameters = this.filesConverterData.getParameters(); + + MessageManager messageManager = editor.getMessageManager(); + + GridData gd = new GridData(); + + composite = SWTFactory.createComposite(parent, 9, 1, SWT.HORIZONTAL); + + converterIdField = new ConverterIdField(composite, Texts.CONVERTER_PARAMETERS_CONVERTER_ID_LABEL, + ConverterDirection.FILES_TO_IMAGE); + converterIdField.addSelectionListener(new Action(Actions.CONVERTER_ID_CHANGED, editor)); + messageManager.registerField(converterIdField, ConverterCommonParameters.MessageIds.CONVERTER_ID); + + Composite toolBarcomposite = SWTFactory.createComposite(composite, 3, 7, GridData.FILL_HORIZONTAL); + ToolBar toolbar = new ToolBar(toolBarcomposite, SWT.HORIZONTAL); + + findDefaultFileConverterButton = new ToolItem(toolbar, SWT.PUSH); + findDefaultFileConverterButton.setImage(Icons.FIND_DEFAULT_CONVERTER); + findDefaultFileConverterButton.setToolTipText(Texts.FIND_DEFAULT_FILE_CONVERTER_BUTTON_TOOLTIP); + findDefaultFileConverterButton.addSelectionListener(new Action(Actions.FIND_DEFAULT_FILE_CONVERTER, editor)); + + createConversionButton = new ToolItem(toolbar, SWT.PUSH); + createConversionButton.setImage(Icons.CREATE_CONVERSION); + createConversionButton.setToolTipText(Texts.CREATE_CONVERSION_BUTTON_TOOLTIP); + createConversionButton.addSelectionListener(new Action(Actions.CREATE_CONVERSION, editor)); + + final Action refreshAction = new Action(Actions.REFRESH, editor); + refreshButton = new ToolItem(toolbar, SWT.PUSH); + refreshButton.setImage(Icons.REFRESH); + refreshButton.setToolTipText(Texts.REFRESH_BUTTON_TOOLTIP); + refreshButton.addSelectionListener(refreshAction); + + // Press + composite.addTraverseListener(new TraverseListener() { + + @Override + public void keyTraversed(TraverseEvent event) { + if (event.detail == SWT.TRAVERSE_RETURN) { + // The user pressed Enter + refreshAction.widgetDefaultSelected(null); + } + + } + }); + + saveImageButton = new ToolItem(toolbar, SWT.NONE); + saveImageButton.setImage(Icons.SAVE_IMAGE); + saveImageButton.setToolTipText(Texts.SAVE_IMAGE_BUTTON_TOOLTIP); + saveImageButton.addSelectionListener(new Action(Actions.SAVE_IMAGE, editor)); + + sourceFileViews = new ArrayList(SOURCE_FILES); + for (int i = 0; i < SOURCE_FILES; i++) { + SourceFileView sourceFileView; + + sourceFileView = new SourceFileView(composite, "", SWT.OPEN); + sourceFileView.addChangeListener(editor); + sourceFileView.getFileOffsetField().addSelectionAction(refreshAction); + messageManager.registerField(sourceFileView.getFilePathField(), + FilesConverterParameters.MessageIds.SOURCE_FILE_PATH + i); + messageManager.registerField(sourceFileView.getFileOffsetField(), + FilesConverterParameters.MessageIds.SOURCE_FILE_OFFSET + i); + sourceFileViews.add(sourceFileView); + SWTFactory.createLabels(composite, 1); + + } + + SWTFactory.createLabels(composite, 1); + + spacingColorSelectorLabel = new Label(composite, SWT.NONE); + spacingColorSelectorLabel.setText(Texts.CONVERTER_PARAMETERS_SPACING_COLOR_LABEL); + spacingColorSelector = new ColorSelector(composite); + Button spacingColorButton = spacingColorSelector.getButton(); + gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); + spacingColorButton.setLayoutData(gd); + spacingColorButton.addSelectionListener(new Action(Actions.PARAMETER_CHANGED, editor)); + // messageManager.registerField(rowsField, + // FilesConverterParameters.MessageIds.SPACING_COLOR); + // TODO Requires a ColorSelectorField + + spacingWidthField = new IntegerField(composite, Texts.CONVERTER_PARAMETERS_SPACING_WIDTH_LABEL, new int[] { 0, + 1, 2, 4, 8 }, false, NumberUtility.AUTOMATIC_LENGTH, SWT.NONE); + spacingWidthField.addSelectionAction(new Action(Actions.PARAMETER_CHANGED, editor)); + messageManager.registerField(spacingWidthField, FilesConverterParameters.MessageIds.SPACING_WIDTH); + + columnsField = new IntegerField(composite, Texts.CONVERTER_PARAMETERS_COLUMNS_LABEL, new int[] { 1, 2, 3, 4, 8, + 16, 32, 40, 48, 64, 128, 256 }, false, NumberUtility.AUTOMATIC_LENGTH, SWT.NONE); + columnsField.addChangeListener(editor); + columnsField.addSelectionAction(new Action(Actions.PARAMETER_CHANGED, editor)); + messageManager.registerField(columnsField, FilesConverterParameters.MessageIds.COLUMNS); + + rowsField = new IntegerField(composite, Texts.CONVERTER_PARAMETERS_ROWS_LABEL, + new int[] { 1, 2, 3, 4, 24, 25 }, false, NumberUtility.AUTOMATIC_LENGTH, SWT.NONE); + rowsField.addChangeListener(editor); + rowsField.addSelectionAction(new Action(Actions.PARAMETER_CHANGED, editor)); + messageManager.registerField(rowsField, FilesConverterParameters.MessageIds.ROWS); + + imageFilePathField = new FilePathField(composite, Texts.CONVERTER_PARAMETERS_IMAGE_FILE_PATH_LABEL, SWT.SAVE); + imageFilePathField.addChangeListener(editor); + imageFilePathField.addChangeListener(editor); + messageManager.registerField(imageFilePathField, FilesConverterParameters.MessageIds.IMAGE_FILE_PATH); + + imageAspectField = new AspectField(composite, Texts.CONVERTER_PARAMETERS_IMAGE_ASPECT_LABEL); + imageAspectField.addSelectionAction(new Action(Actions.PARAMETER_CHANGED, editor)); + imageFilePathField.addChangeListener(editor); + messageManager.registerField(imageAspectField, ConverterCommonParameters.MessageIds.IMAGE_ASPECT); + + // Read only fields. + imageDataWidthField = new IntegerField(composite, Texts.CONVERTER_DATA_IMAGE_DATA_WIDTH_LABEL, null, false, + NumberUtility.AUTOMATIC_LENGTH, SWT.READ_ONLY); + imageDataHeightField = new IntegerField(composite, Texts.CONVERTER_DATA_IMAGE_DATA_HEIGHT_LABEL, null, false, + NumberUtility.AUTOMATIC_LENGTH, SWT.READ_ONLY); + } + + public Composite getComposite() { + return composite; + } + + public void dataFromUI() { + + // Copy the file paths and offsets before setting the new converter. + Converter converter = filesConverterData.getConverter(); + for (int i = 0; i < sourceFileViews.size(); i++) { + SourceFileView sourceFileView = sourceFileViews.get(i); + if (converter == null) { + + } else { + List sourceFileDefinitions = converter.getDefinition() + .getSourceFileDefinitions(); + if (i < sourceFileDefinitions.size()) { + SourceFile sourceFile = filesConverterParameters.getSourceFile(i); + sourceFile.setPath(sourceFileView.getFilePath()); + sourceFile.setOffset(sourceFileView.getFileOffset()); + } + } + } + + filesConverterParameters.setImageFilePath(imageFilePathField.getValue()); + + filesConverterParameters.setConverterId(converterIdField.getValue()); + + filesConverterParameters.setColumns(columnsField.getValue()); + filesConverterParameters.setRows(rowsField.getValue()); + + filesConverterParameters.setSpacingColor(spacingColorSelector.getColorValue()); + filesConverterParameters.setSpacingWidth(spacingWidthField.getValue()); + + filesConverterParameters.setImageAspect(imageAspectField.getValue()); + } + + public void dataToUI() { + + findDefaultFileConverterButton.setEnabled(filesConverterData.isValid()); + createConversionButton.setEnabled(filesConverterData.isCreateConversionEnabled()); + refreshButton.setEnabled(filesConverterData.isRefreshEnabled()); + saveImageButton.setEnabled(filesConverterData.isSaveImageEnabled()); + + converterIdField.setValue(filesConverterParameters.getConverterId()); + converterIdField.setEnabled(filesConverterData.isValid()); + + Converter converter = filesConverterData.getConverter(); + for (int i = 0; i < sourceFileViews.size(); i++) { + SourceFileView sourceFileView = sourceFileViews.get(i); + sourceFileView.setFilePathPrefix(filesConverterData.getFilePathPrefix()); + if (converter == null) { + sourceFileView.getFilePathField().setLabelText("Not used"); + sourceFileView.setFilePath(""); + sourceFileView.setFileBytes(null); + sourceFileView.setFileOffset(0); + sourceFileView.setVisible(true); + sourceFileView.setEnabled(false); + } else { + List sourceFileDefinitions = converter.getDefinition() + .getSourceFileDefinitions(); + if (i < sourceFileDefinitions.size()) { + sourceFileView.getFilePathField().setLabelText(sourceFileDefinitions.get(i).getLabel()); + SourceFile sourceFile = filesConverterParameters.getSourceFile(i); + sourceFileView.setFilePath(sourceFile.getPath()); + sourceFileView.setFileBytes(filesConverterData.getSourceFileBytes(sourceFile.getId())); + sourceFileView.setFileOffset(sourceFile.getOffset()); + sourceFileView.setVisible(true); + sourceFileView.setEnabled(true); + } else { + sourceFileView.getFilePathField().setLabelText("Not used"); + sourceFileView.setFilePath(""); + sourceFileView.setFileBytes(null); + sourceFileView.setFileOffset(0); + sourceFileView.setVisible(true); + sourceFileView.setEnabled(false); + } + } + + } + + imageFilePathField.setFilePathPrefix(filesConverterData.getFilePathPrefix()); + imageFilePathField.setValue(filesConverterParameters.getImageFilePath()); + imageFilePathField.setEnabled(filesConverterData.isValid()); + imageFilePathField.setEditable(true); + + columnsField.setValue(filesConverterParameters.getColumns()); + columnsField.setEnabled(filesConverterData.isValid()); + rowsField.setValue(filesConverterParameters.getRows()); + rowsField.setEnabled(filesConverterData.isValid()); + + spacingColorSelector.setColorValue(filesConverterParameters.getSpacingColor()); + spacingColorSelectorLabel.setEnabled(filesConverterData.isValid()); + spacingColorSelector.setEnabled(filesConverterData.isValid()); + spacingWidthField.setValue(filesConverterParameters.getSpacingWidth()); + spacingWidthField.setEnabled(filesConverterData.isValid()); + + imageAspectField.setValue(filesConverterParameters.getImageAspect()); + imageAspectField.setEnabled(filesConverterData.isValid()); + imageDataWidthField.setValue(filesConverterData.getImageDataWidth()); + imageDataWidthField.setEnabled(filesConverterData.isImageDataValid()); + imageDataHeightField.setValue(filesConverterData.getImageDataHeight()); + imageDataHeightField.setEnabled(filesConverterData.isImageDataValid()); + + composite.pack(); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/GraphicsEditor.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/GraphicsEditor.java new file mode 100644 index 00000000..81243168 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/GraphicsEditor.java @@ -0,0 +1,729 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.editor; + +import java.util.ArrayList; +import java.util.List; + +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.TabFolder; +import org.eclipse.swt.widgets.TabItem; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IFileEditorInput; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.dialogs.SaveAsDialog; +import org.eclipse.ui.ide.IDE; +import org.eclipse.ui.part.EditorPart; + +import com.wudsn.ide.base.BasePlugin; +import com.wudsn.ide.base.common.NumberUtility; +import com.wudsn.ide.base.gui.Action; +import com.wudsn.ide.base.gui.Application; +import com.wudsn.ide.base.gui.MessageManager; +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.Texts; +import com.wudsn.ide.gfx.converter.ConverterData; +import com.wudsn.ide.gfx.converter.ConverterDataLogic; +import com.wudsn.ide.gfx.converter.FilesConverterParameters; +import com.wudsn.ide.gfx.converter.ImageColorHistogram; +import com.wudsn.ide.gfx.converter.ImageConverterParameters; +import com.wudsn.ide.gfx.model.Aspect; +import com.wudsn.ide.gfx.model.ConverterDirection; +import com.wudsn.ide.gfx.model.ConverterMode; + + +public final class GraphicsEditor extends EditorPart implements Application, ISelectionProvider, ChangeListener { + + public final class Actions { + + /** + * Creation is private. + */ + private Actions() { + } + + public static final int TAB_CHANGED = 900; + } + + /** + * Encapsulation of the external image views. + */ + private final class MyImageProvider implements ImageProvider { + + private ImageData displayImageData; + private ImageColorHistogram displayImageColorHistogram; + + private ImageView imageView; + private ImagePaletteView imagePaletteView; + + MyImageProvider() { + + } + + @Override + public void setImageView(ImageView imageView) { + this.imageView = imageView; + } + + @Override + public void setImagePaletteView(ImagePaletteView imagePaletteView) { + this.imagePaletteView = imagePaletteView; + } + + @Override + public Aspect getAspect() { + return converterData.getParameters().getConverterCommonParameters().getDisplayAspect(); + } + + @Override + public void setAspect(Aspect value) { + dataFromUI(); + converterData.getParameters().getConverterCommonParameters().setDisplayAspect(value); + dataToUI(); + } + + @Override + public boolean isShrinkToFit() { + return converterData.getParameters().getConverterCommonParameters().isDisplayShrinkToFit(); + } + + @Override + public void setShrinkToFit(boolean value) { + dataFromUI(); + converterData.getParameters().getConverterCommonParameters().setDisplayShrinkToFit(value); + dataToUI(); + } + + @Override + public boolean isZoomToFit() { + return converterData.getParameters().getConverterCommonParameters().isDisplayZoomToFit(); + } + + @Override + public void setZoomToFit(boolean value) { + dataFromUI(); + converterData.getParameters().getConverterCommonParameters().setDisplayZoomToFit(value); + dataToUI(); + } + + @Override + public ImageData getImageData() { + return displayImageData; + } + + @Override + public ImageColorHistogram getImageColorHistogram() { + return displayImageColorHistogram; + } + + @Override + public boolean isPaletteChangeable() { + return converterData.getConverterDirection() == ConverterDirection.FILES_TO_IMAGE + && displayImageData != null && !displayImageData.palette.isDirect; + } + + @Override + public void setPaletteRGBs(RGB[] rgbs) { + if (rgbs == null) { + throw new IllegalArgumentException("Parameter 'rgbs' must not be null."); + } + dataFromUI(); + FilesConverterParameters parameters; + parameters = converterData.getParameters().getFilesConverterParameters(); + RGB[] currentRGBs = parameters.getPaletteRGBs(); + for (int i = 0; i < rgbs.length && i < currentRGBs.length; i++) { + currentRGBs[i] = rgbs[i]; + } + parameters.setPaletteManual(); + parameters.setPaletteRGBs(currentRGBs); + convert(); + dataToUi(); + } + + @Override + public void setPaletteRGB(int pixelColor, RGB rgb) { + if (rgb == null) { + throw new IllegalArgumentException("Parameter 'rgb' must not be null."); + } + dataFromUI(); + FilesConverterParameters parameters; + parameters = converterData.getParameters().getFilesConverterParameters(); + RGB[] rgbs = parameters.getPaletteRGBs(); + rgbs[pixelColor] = rgb; + parameters.setPaletteManual(); + parameters.setPaletteRGBs(rgbs); + convert(); + dataToUi(); + } + + final void dataToUi() { + IWorkbenchPage workbenchPage = getSite().getPage(); + + // If there is no perspective active yet, we are in the phase of + // starting while launching the IDE. + // In this situation, the additional views cannot be opened yet. + if (workbenchPage.getOpenPerspectives().length == 0) { + return; + } + + displayImageData = converterData.getConverterCommonData().getImageData(); + displayImageColorHistogram = converterData.getConverterCommonData().getImageColorHistogram(); + + // Ensure that there is an open image palette view. + if (imagePaletteView == null) { + try { + IViewPart viewPart = getSite().getPage().showView(ImagePaletteView.ID); + if (viewPart instanceof ImagePaletteView) { + ((ImagePaletteView) viewPart).setImageProvider(this); + } + } catch (PartInitException ex) { + imagePaletteView = null; + BasePlugin.getInstance().logError("Cannot open image palette view.", null, ex.getCause()); + } + } + if (imagePaletteView != null) { + imagePaletteView.dataToUI(); + } + + // Ensure that there is an open image view. + if (imageView == null) { + try { + IViewPart viewPart = getSite().getPage().showView(ImageView.ID); + if (viewPart instanceof ImageView) { + ((ImageView) viewPart).setImageProvider(this); + } + } catch (PartInitException ex) { + imageView = null; + BasePlugin.getInstance().logError("Cannot open image view.", null, ex); + } + } + if (imageView != null) { + imageView.dataToUI(); + } + } + + final void dispose() { + if (imageView != null) { + imageView.setImageProvider(null); + } + if (imagePaletteView != null) { + imagePaletteView.setImageProvider(null); + } + } + } + + private static final class MySaveAsDialog extends SaveAsDialog { + private String title; + private String message; + + public MySaveAsDialog(Shell parentShell, String title, String message) { + super(parentShell); + this.title = title; + this.message = message; + } + + @Override + protected Control createContents(Composite parent) { + if (parent == null) { + throw new IllegalArgumentException("Parameter 'parent' must not be null."); + } + Control result; + result = super.createContents(parent); + setTitle(title); + setMessage(message); + return result; + } + + } + + // ID of the editor in the plugin manifest. + public static final String ID = "com.wudsn.ide.gfx.editor.GraphicsEditor"; + + private MessageManager messageManager; + private boolean processing; + private boolean closeEditor; + + // All data and parameters. + private ConverterDataLogic converterDataLogic; + final ConverterData converterData; + + // UI state. + private boolean partControlCreated; + private TabFolder tabFolder; + private TabItem filesConverterDataViewTabItem; + private FilesConverterDataView filesConverterDataView; + private TabItem imageConverterDataViewTabItem; + private ImageConverterDataView imageConverterDataView; + + // UI state in external views. + private List selectionChangedListeners; + private MyImageProvider imageProvider; + + public GraphicsEditor() { + messageManager = new MessageManager(this); + + converterDataLogic = new ConverterDataLogic(messageManager); + converterData = converterDataLogic.createData(); + + selectionChangedListeners = new ArrayList(); + imageProvider = new MyImageProvider(); + } + + @Override + public MessageManager getMessageManager() { + return messageManager; + } + + @Override + public void dispose() { + imageProvider.dispose(); + messageManager.dispose(); + super.dispose(); + } + + @Override + public void doSave(IProgressMonitor monitor) { + dataFromUI(); + if (!converterData.isValid()) { + throw new IllegalStateException("Converter data is not valid."); + } + if (converterData.getConverterMode() != ConverterMode.CNV) { + throw new IllegalStateException("Converter data is not in mode CNV."); + } + messageManager.clearMessages(); + IFile saveFile = converterDataLogic.saveConversion(converterData, monitor); + if (saveFile != null) { + firePropertyChange(PROP_INPUT); + messageManager.sendMessage(0, IStatus.INFO, "Conversion {0} saved", saveFile.getFullPath().toString()); + } else if (monitor != null) { + monitor.setCanceled(true); + + } + dataToUI(); + } + + @Override + public void doSaveAs() { + dataFromUI(); + if (!converterData.isValid()) { + throw new IllegalStateException("Converter data is not valid."); + } + if (converterData.getConverterMode() != ConverterMode.CNV) { + throw new IllegalStateException("Converter data is not in mode CNV."); + } + IFile saveAsFile = saveConversionAs(converterData, Texts.SAVE_AS_DIALOG_TITLE, Texts.SAVE_AS_DIALOG_MESSAGE, + null); + if (saveAsFile != null) { + firePropertyChange(PROP_INPUT); + messageManager.sendMessage(0, IStatus.INFO, "Conversion {0} saved", saveAsFile.getFullPath().toString()); + } + dataToUI(); + } + + @Override + public void init(IEditorSite site, IEditorInput input) throws PartInitException { + if (site == null) { + throw new IllegalArgumentException("Parameter 'site' must not be null."); + } + setSite(site); + setInput(input); + + if (input != null) { + setPartName(input.getName()); + } else { + setPartName(""); + } + + messageManager.clearMessages(); + converterData.clear(); + try { + if (input instanceof IFileEditorInput) { + IFileEditorInput fileEditorInput = (IFileEditorInput) input; + IFile file = fileEditorInput.getFile(); + converterData.setFile(file); + converterDataLogic.load(converterData); + } + } catch (Exception ex) { + BasePlugin.getInstance().logError("Cannot open file.", null, ex); + } + convert(); + if (partControlCreated) { + dataToUI(); + } + + } + + /** + * Opens another file a new editor instance. + * + * @param file + * The file, not null. + * @return true if the editor was opened, false + * otherwise. + */ + private boolean openEditor(IFile file) { + if (file == null) { + throw new IllegalArgumentException("Parameter 'file' must not be null."); + } + + boolean result; + + result = false; + try { + + IDE.openEditor(getSite().getPage(), file, ID); + result = true; + + } catch (PartInitException ex) { + GraphicsPlugin.getInstance().logError("Cannot open default editor for {0}'.", new Object[] { file }, ex); + } + return result; + } + + /** + * Closes the current editor instance. + */ + private void closeEditor() { + getSite().getPage().closeEditor(this, false); + } + + @Override + public boolean isDirty() { + boolean result; + dataFromUI(); + result = converterData.isValidConversion() && converterData.isChanged(); + return result; + } + + @Override + public boolean isSaveAsAllowed() { + boolean result; + result = converterData.isValidConversion(); + return result; + } + + @Override + public void createPartControl(Composite parent) { + + getSite().setSelectionProvider(this); + + Composite composite = parent; + composite.setLayout(new FillLayout(SWT.VERTICAL)); + tabFolder = new TabFolder(composite, SWT.TOP); + + filesConverterDataViewTabItem = new TabItem(tabFolder, SWT.NONE); + filesConverterDataViewTabItem.setText(Texts.FILES_CONVERTER_DATA_VIEW_TAB); + filesConverterDataView = new FilesConverterDataView(this, tabFolder, converterData.getFilesConverterData()); + filesConverterDataViewTabItem.setControl(filesConverterDataView.getComposite()); + + imageConverterDataViewTabItem = new TabItem(tabFolder, SWT.NONE); + imageConverterDataViewTabItem.setText(Texts.IMAGE_CONVERTER_DATA_VIEW_TAB); + imageConverterDataView = new ImageConverterDataView(this, tabFolder, converterData.getImageConverterData()); + imageConverterDataViewTabItem.setControl(imageConverterDataView.getComposite()); + + // Add selection listener only after all tabs have been added. + tabFolder.addSelectionListener(new Action(Actions.TAB_CHANGED, this)); + + partControlCreated = true; + + dataToUI(); + + } + + @Override + public void performAction(Action action) { + if (action == null) { + throw new IllegalArgumentException("Parameter 'action' must not be null."); + } + if (!processing) { + processing = true; + + try { + + messageManager.clearMessages(); + dataFromUI(); + + switch (action.getId()) { + case Actions.TAB_CHANGED: + loadSources(false, true); + break; + + case FilesConverterDataView.Actions.FIND_DEFAULT_FILE_CONVERTER: + converterDataLogic.findDefaultFileConverter(converterData); + convert(); + break; + + case FilesConverterDataView.Actions.CREATE_CONVERSION: + createConversion(); + break; + + case FilesConverterDataView.Actions.REFRESH: + loadSources(false, true); + break; + + case FilesConverterDataView.Actions.SAVE_IMAGE: + saveTargets(); + break; + + case FilesConverterDataView.Actions.CONVERTER_ID_CHANGED: + loadSources(true, true); + break; + + case FilesConverterDataView.Actions.PARAMETER_CHANGED: + convert(); + break; + + case FilesConverterDataView.Actions.PALETTE_COLORS_CHANGED: + converterData.getFilesConverterData().getParameters().setPaletteManual(); + convert(); + break; + + case ImageConverterDataView.Actions.CREATE_CONVERSION: + createConversion(); + break; + + case ImageConverterDataView.Actions.REFRESH: + loadSources(false, true); + break; + + case ImageConverterDataView.Actions.SAVE_FILES: + saveTargets(); + break; + + case ImageConverterDataView.Actions.CONVERTER_ID_CHANGED: + loadSources(true, true); + break; + + case ImageConverterDataView.Actions.PARAMETER_CHANGED: + convert(); + } + + dataToUI(); + } catch (Exception ex) { + GraphicsPlugin.getInstance().showError(getSite().getShell(), "Error in update()", ex); + } + + processing = false; + if (closeEditor) { + closeEditor(); + } + } + + } + + private void loadSources(boolean applyDefaults, boolean convert) { + if (applyDefaults) { + converterDataLogic.applyDefaults(converterData); + } + long startTimeMillis = System.currentTimeMillis(); + if (converterDataLogic.loadSources(converterData, false)) { + if (convert) { + converterDataLogic.convert(converterData); + long duration = System.currentTimeMillis() - startTimeMillis; + String durationString = NumberUtility.getLongValueDecimalString(duration); + switch (converterData.getConverterDirection()) { + case FILES_TO_IMAGE: + messageManager.sendMessage(ImageConverterParameters.MessageIds.IMAGE_FILE_PATH, IStatus.OK, + Texts.MESSAGE_S100, durationString); + break; + case IMAGE_TO_FILES: + messageManager.sendMessage(ImageConverterParameters.MessageIds.IMAGE_FILE_PATH, IStatus.OK, + "Image file loaded and converted in {0} ms", durationString); + break; + } + } else { + switch (converterData.getConverterDirection()) { + case FILES_TO_IMAGE: + messageManager.sendMessage(ImageConverterParameters.MessageIds.IMAGE_FILE_PATH, IStatus.OK, + "Source files loaded"); + break; + case IMAGE_TO_FILES: + messageManager.sendMessage(ImageConverterParameters.MessageIds.IMAGE_FILE_PATH, IStatus.OK, + "Image file loaded"); + break; + } + } + } + } + + final void convert() { + converterDataLogic.convert(converterData); + } + + private void saveTargets() { + converterDataLogic.saveTargets(converterData); + + } + + private void createConversion() { + + ConverterData newConverterData; + IFile saveAsFile; + + newConverterData = converterDataLogic.createConversion(converterData); + + saveAsFile = saveConversionAs(newConverterData, Texts.CREATE_CONVERSION_DIALOG_TITLE, + Texts.CREATE_CONVERSION_DIALOG_MESSAGE, null); + if (saveAsFile != null) { + messageManager.sendMessage(0, IStatus.INFO, "Conversion {0} saved", saveAsFile.getFullPath().toString()); + closeEditor = openEditor(saveAsFile); + + } + } + + private IFile saveConversionAs(ConverterData data, String title, String message, IProgressMonitor monitor) { + if (data == null) { + throw new IllegalArgumentException("Parameter 'data' must not be null."); + } + + if (title == null) { + throw new IllegalArgumentException("Parameter 'title' must not be null."); + } + if (message == null) { + throw new IllegalArgumentException("Parameter 'message' must not be null."); + } + IFile saveAsFile; + IPath saveAsPath; + SaveAsDialog saveAsDialog = new MySaveAsDialog(getSite().getShell(), title, message); + saveAsDialog.setBlockOnOpen(true); + saveAsDialog.setOriginalFile(data.getFile()); + saveAsDialog.open(); + saveAsPath = saveAsDialog.getResult(); + if (saveAsPath != null) { + + IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); + saveAsFile = workspaceRoot.getFile(saveAsPath); + converterData.setFile(saveAsFile); + converterDataLogic.saveConversion(data, monitor); + + } else { + saveAsFile = null; + } + return saveAsFile; + } + + final void dataFromUI() { + + TabItem[] tabItems = tabFolder.getSelection(); + if (tabItems == null || tabItems.length == 0 || tabItems[0] == filesConverterDataViewTabItem) { + converterData.getParameters().setConverterDirection(ConverterDirection.FILES_TO_IMAGE); + } else { + converterData.getParameters().setConverterDirection(ConverterDirection.IMAGE_TO_FILES); + } + + filesConverterDataView.dataFromUI(); + imageConverterDataView.dataFromUI(); + + } + + final void dataToUI() { + + firePropertyChange(PROP_DIRTY); + + switch (converterData.getConverterDirection()) { + case FILES_TO_IMAGE: + tabFolder.setSelection(filesConverterDataViewTabItem); + break; + case IMAGE_TO_FILES: + tabFolder.setSelection(imageConverterDataViewTabItem); + break; + default: + throw new IllegalStateException("Unknown converter direction '" + converterData.getConverterDirection() + + "'."); + } + + filesConverterDataView.dataToUI(); + imageConverterDataView.dataToUI(); + + if (partControlCreated) { + imageProvider.dataToUi(); + } + + messageManager.displayMessages(); + + } + + @Override + public void setFocus() { + tabFolder.setFocus(); + // dataToUI(); Do not use here. Causes a recursion due to the image view + // trying to come to front. + } + + @Override + public void addSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangedListeners.add(listener); + } + + @Override + public void removeSelectionChangedListener(ISelectionChangedListener listener) { + selectionChangedListeners.remove(listener); + } + + @Override + public ISelection getSelection() { + return new StructuredSelection(); + } + + @Override + public void setSelection(ISelection selection) { + for (ISelectionChangedListener listener : selectionChangedListeners) { + listener.selectionChanged(new SelectionChangedEvent(this, selection)); + } + } + + @Override + public void stateChanged(ChangeEvent event) { + firePropertyChange(PROP_DIRTY); + } + + /** + * Gets the image provider for this editor. + * + * @return The image provider, not null. + */ + public ImageProvider getImageProvider() { + return imageProvider; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/GraphicsEditorOpenCommandHandler.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/GraphicsEditorOpenCommandHandler.java new file mode 100644 index 00000000..b3115a86 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/GraphicsEditorOpenCommandHandler.java @@ -0,0 +1,39 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.editor; + +import com.wudsn.ide.base.editor.CommonOpenEditorCommandHandler; + +/** + * The action to open the graphics editor from the context menu. + * + * @author Peter Dell + */ +public final class GraphicsEditorOpenCommandHandler extends CommonOpenEditorCommandHandler { + + /** + * Creation is public. Called by extension "org.eclipse.ui.popupMenus". + */ + public GraphicsEditorOpenCommandHandler() { + super(GraphicsEditor.ID); + } + + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/Icons.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/Icons.java new file mode 100644 index 00000000..d209856d --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/Icons.java @@ -0,0 +1,43 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.editor; + +import org.eclipse.swt.graphics.Image; + +import com.wudsn.ide.base.common.AbstractIDEPlugin; +import com.wudsn.ide.gfx.GraphicsPlugin; + +final class Icons { + + public static final Image FIND_DEFAULT_CONVERTER; + public static final Image CREATE_CONVERSION; + public static final Image REFRESH; + public static final Image SAVE_IMAGE; + public static final Image SAVE_FILES; + + static { + AbstractIDEPlugin plugin = GraphicsPlugin.getInstance(); + FIND_DEFAULT_CONVERTER = plugin.getImage("searchm_obj.gif"); + CREATE_CONVERSION = plugin.getImage("graphics-editor-16x16.gif"); + REFRESH = plugin.getImage("refresh.gif"); + SAVE_IMAGE = plugin.getImage("save_edit.gif"); + SAVE_FILES = plugin.getImage("save_edit.gif"); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageConverterDataView.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageConverterDataView.java new file mode 100644 index 00000000..7233c590 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageConverterDataView.java @@ -0,0 +1,297 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ +package com.wudsn.ide.gfx.editor; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.resource.JFaceResources; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.StyledText; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; + +import com.wudsn.ide.base.common.NumberUtility; +import com.wudsn.ide.base.gui.Action; +import com.wudsn.ide.base.gui.CheckBoxField; +import com.wudsn.ide.base.gui.FilePathField; +import com.wudsn.ide.base.gui.IntegerField; +import com.wudsn.ide.base.gui.MessageManager; +import com.wudsn.ide.base.gui.MultiLineTextField; +import com.wudsn.ide.base.gui.SWTFactory; +import com.wudsn.ide.gfx.Texts; +import com.wudsn.ide.gfx.converter.Converter; +import com.wudsn.ide.gfx.converter.ConverterCommonParameters; +import com.wudsn.ide.gfx.converter.ConverterTargetFileDefinition; +import com.wudsn.ide.gfx.converter.ImageConverterData; +import com.wudsn.ide.gfx.converter.ImageConverterParameters; +import com.wudsn.ide.gfx.converter.ImageConverterParameters.TargetFile; +import com.wudsn.ide.gfx.gui.AspectField; +import com.wudsn.ide.gfx.gui.ConverterIdField; +import com.wudsn.ide.gfx.gui.TargetFileView; +import com.wudsn.ide.gfx.model.ConverterDirection; + +final class ImageConverterDataView { + + public final class Actions { + + /** + * Creation is private. + */ + private Actions() { + } + + public static final int CREATE_CONVERSION = 2000; + public static final int REFRESH = 2001; + public static final int SAVE_FILES = 2002; + public static final int CONVERTER_ID_CHANGED = 2003; + + public static final int PARAMETER_CHANGED = 2100; + public static final int PALETTE_COLORS_CHANGED = 2101; + } + + private ImageConverterData imageConverterData; + private ImageConverterParameters imageConverterParameters; + + private Composite composite; + + private ConverterIdField converterIdField; + + private ToolItem createConversionButton; + private ToolItem refreshButton; + private ToolItem saveFilesButton; + + private FilePathField imageFilePathField; + private AspectField imageAspectField; + private IntegerField imageDataWidthField; + private IntegerField imageDataHeightField; + + private static final int TARGET_FILES = 3; + private List targetFileViews; + + private CheckBoxField useDefaultScriptField; + private MultiLineTextField scriptField; + + public ImageConverterDataView(GraphicsEditor editor, Composite parent, ImageConverterData imageConverterData) { + if (editor == null) { + throw new IllegalArgumentException("Parameter 'editor' must not be null."); + } + if (parent == null) { + throw new IllegalArgumentException("Parameter 'parent' must not be null."); + } + if (imageConverterData == null) { + throw new IllegalArgumentException("Parameter 'imageConverterData' must not be null."); + } + this.imageConverterData = imageConverterData; + this.imageConverterParameters = this.imageConverterData.getParameters(); + + MessageManager messageManager = editor.getMessageManager(); + + // Create visual elements. + composite = new Composite(parent, SWT.NONE); + composite.setLayout(new GridLayout(1, false)); + GridData gd = new GridData(); + gd.grabExcessHorizontalSpace = false; + gd.grabExcessVerticalSpace = false; + composite.setLayoutData(gd); + + Composite topComposite = SWTFactory.createComposite(composite, 9, 1, SWT.HORIZONTAL); + + converterIdField = new ConverterIdField(topComposite, Texts.CONVERTER_PARAMETERS_CONVERTER_ID_LABEL, + ConverterDirection.IMAGE_TO_FILES); + converterIdField.addSelectionListener(new Action(Actions.CONVERTER_ID_CHANGED, editor)); + messageManager.registerField(converterIdField, ConverterCommonParameters.MessageIds.CONVERTER_ID); + + Composite toolBarcomposite = SWTFactory.createComposite(topComposite, 3, 7, GridData.FILL_HORIZONTAL); + ToolBar toolbar = new ToolBar(toolBarcomposite, SWT.HORIZONTAL); + + createConversionButton = new ToolItem(toolbar, SWT.PUSH); + createConversionButton.setImage(Icons.CREATE_CONVERSION); + createConversionButton.setToolTipText(Texts.CREATE_CONVERSION_BUTTON_TOOLTIP); + createConversionButton.addSelectionListener(new Action(Actions.CREATE_CONVERSION, editor)); + + refreshButton = new ToolItem(toolbar, SWT.PUSH); + refreshButton.setImage(Icons.REFRESH); + refreshButton.setToolTipText(Texts.REFRESH_BUTTON_TOOLTIP); + refreshButton.addSelectionListener(new Action(Actions.REFRESH, editor)); + + saveFilesButton = new ToolItem(toolbar, SWT.NONE); + saveFilesButton.setImage(Icons.SAVE_FILES); + saveFilesButton.setToolTipText(Texts.SAVE_FILES_BUTTON_TOOLTIP); + saveFilesButton.addSelectionListener(new Action(Actions.SAVE_FILES, editor)); + + imageFilePathField = new FilePathField(topComposite, Texts.CONVERTER_PARAMETERS_IMAGE_FILE_PATH_LABEL, SWT.OPEN); + imageFilePathField.addChangeListener(editor); + messageManager.registerField(imageFilePathField, ImageConverterParameters.MessageIds.IMAGE_FILE_PATH); + + // + imageAspectField = new AspectField(topComposite, Texts.CONVERTER_PARAMETERS_IMAGE_ASPECT_LABEL); + imageAspectField.addSelectionAction(new Action(Actions.PARAMETER_CHANGED, editor)); + messageManager.registerField(imageAspectField, ConverterCommonParameters.MessageIds.IMAGE_ASPECT); + + imageDataWidthField = new IntegerField(topComposite, Texts.CONVERTER_DATA_IMAGE_DATA_WIDTH_LABEL, null, false, + NumberUtility.AUTOMATIC_LENGTH, SWT.READ_ONLY); + imageDataHeightField = new IntegerField(topComposite, Texts.CONVERTER_DATA_IMAGE_DATA_HEIGHT_LABEL, null, + false, NumberUtility.AUTOMATIC_LENGTH, SWT.READ_ONLY); + + targetFileViews = new ArrayList(TARGET_FILES); + for (int i = 0; i < TARGET_FILES; i++) { + TargetFileView targetFileView; + + targetFileView = new TargetFileView(topComposite, "", SWT.SAVE); + targetFileView.addChangeListener(editor); + messageManager.registerField(targetFileView.getFilePathField(), + ImageConverterParameters.MessageIds.TARGET_FILE_PATH + i); + targetFileViews.add(targetFileView); + SWTFactory.createLabels(topComposite, 4); + + } + + useDefaultScriptField = new CheckBoxField(topComposite, Texts.CONVERTER_PARAMETERS_USE_DEFAULT_SCRIPT_LABEL, + SWT.NONE); + useDefaultScriptField.addSelectionAction(new Action(Actions.PARAMETER_CHANGED, editor)); + messageManager.registerField(useDefaultScriptField, ImageConverterParameters.MessageIds.USE_DEFAULT_SCRIPT); + SWTFactory.createLabels(topComposite, 6); + + scriptField = new MultiLineTextField(composite, SWT.H_SCROLL | SWT.V_SCROLL); + scriptField.addChangeListener(editor); + messageManager.registerField(scriptField, ImageConverterParameters.MessageIds.SCRIPT); + gd = new GridData(); + gd.horizontalSpan = 1; + gd.verticalSpan = 1; + gd.grabExcessHorizontalSpace = true; + gd.grabExcessVerticalSpace = true; + Rectangle clientArea = Display.getCurrent().getClientArea(); + gd.heightHint = clientArea.width; + gd.widthHint = clientArea.height; + StyledText styledText = scriptField.getText(); + styledText.setLayoutData(gd); + styledText.setFont(JFaceResources.getTextFont()); + styledText.setTabs(4); + + } + + public Composite getComposite() { + return composite; + } + + public void dataFromUI() { + + imageConverterParameters.setImageFilePath(imageFilePathField.getValue()); + imageConverterParameters.setImageAspect(imageAspectField.getValue()); + + // Copy the file paths before setting the new converter. + Converter converter = imageConverterData.getConverter(); + for (int i = 0; i < targetFileViews.size(); i++) { + TargetFileView targetFileView = targetFileViews.get(i); + if (converter == null) { + + } else { + List targetFileDefinitions = converter.getDefinition() + .getTargetFileDefinitions(); + if (i < targetFileDefinitions.size()) { + TargetFile targetFile = imageConverterParameters.getTargetFile(i); + targetFile.setPath(targetFileView.getFilePath()); + } + } + } + + imageConverterParameters.setConverterId(converterIdField.getValue()); + + imageConverterParameters.setUseDefaultScript(useDefaultScriptField.getValue()); + if (!imageConverterParameters.isUseDefaultScript()) { + imageConverterParameters.setScript(scriptField.getValue()); + } + } + + public void dataToUI() { + + createConversionButton.setEnabled(imageConverterData.isCreateConversionEnabled()); + refreshButton.setEnabled(imageConverterData.isRefreshEnabled()); + saveFilesButton.setEnabled(imageConverterData.isSaveFilesEnabled()); + + converterIdField.setValue(imageConverterParameters.getConverterId()); + converterIdField.setEnabled(imageConverterData.isValid()); + + imageFilePathField.setFilePathPrefix(imageConverterData.getFilePathPrefix()); + imageFilePathField.setValue(imageConverterParameters.getImageFilePath()); + imageFilePathField.setEnabled(imageConverterData.isValid()); + imageFilePathField.setEditable(true); + + imageAspectField.setValue(imageConverterParameters.getImageAspect()); + imageAspectField.setEnabled(imageConverterData.isValid()); + imageDataWidthField.setValue(imageConverterData.getImageDataWidth()); + imageDataWidthField.setEnabled(imageConverterData.isValid()); + imageDataHeightField.setValue(imageConverterData.getImageDataHeight()); + imageDataHeightField.setEnabled(imageConverterData.isValid()); + + Converter converter = imageConverterData.getConverter(); + for (int i = 0; i < targetFileViews.size(); i++) { + TargetFileView targetFileView = targetFileViews.get(i); + targetFileView.setFilePathPrefix(imageConverterData.getFilePathPrefix()); + if (converter == null) { + targetFileView.getFilePathField().setLabelText("Not used"); + targetFileView.setFilePath(""); + targetFileView.setFileBytes(null); + targetFileView.setVisible(true); + targetFileView.setEnabled(false); + } else { + List targetFileDefinitions = converter.getDefinition() + .getTargetFileDefinitions(); + if (i < targetFileDefinitions.size()) { + targetFileView.getFilePathField().setLabelText(targetFileDefinitions.get(i).getLabel()); + TargetFile targetFile = imageConverterParameters.getTargetFile(i); + targetFileView.setFilePath(targetFile.getPath()); + targetFileView.setFileBytes(imageConverterData.getTargetFileBytes(targetFile.getId())); + targetFileView.setVisible(true); + targetFileView.setEnabled(imageConverterData.isValidConversion()); + } else { + targetFileView.getFilePathField().setLabelText("Not used"); + targetFileView.setFilePath(""); + targetFileView.setFileBytes(null); + targetFileView.setVisible(true); + targetFileView.setEnabled(false); + } + } + + } + + useDefaultScriptField.setValue(imageConverterParameters.isUseDefaultScript()); + useDefaultScriptField.setEnabled(imageConverterData.isValid()); + useDefaultScriptField.setEditable(imageConverterData.isValidConversion()); + + String script = imageConverterParameters.getScript(); + scriptField.setValue(script); + scriptField.setEnabled(imageConverterData.isValid()); + scriptField.setEditable(!imageConverterParameters.isUseDefaultScript()); + + int lineNumber = imageConverterData.getConverterScriptData().geErrorLineNumber(); + if (lineNumber > 0) { + int offset = scriptField.getText().getOffsetAtLine(lineNumber - 1); + scriptField.setSelection(offset); + } + imageConverterData.getConverterScriptData().setErrorLineNumber(-1); + + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImagePaletteView.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImagePaletteView.java new file mode 100644 index 00000000..3948bf32 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImagePaletteView.java @@ -0,0 +1,829 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.editor; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IMenuCreator; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.resource.JFaceResources; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.PaletteData; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.graphics.Region; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.ColorDialog; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.TableItem; +import org.eclipse.ui.ISelectionListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.ViewPart; + +import com.wudsn.ide.base.common.HexUtility; +import com.wudsn.ide.base.common.NumberUtility; +import com.wudsn.ide.base.common.TextUtility; +import com.wudsn.ide.gfx.Texts; +import com.wudsn.ide.gfx.converter.ImageColorHistogram; +import com.wudsn.ide.gfx.gui.ImageCanvas; +import com.wudsn.ide.gfx.model.Palette; +import com.wudsn.ide.gfx.model.PaletteType; +import com.wudsn.ide.gfx.model.PaletteUtility; + +/** + * This class displays the palette of the image from a {@link ImageProvider}. + * + * @author Peter Dell + * @see ImageCanvas + */ + +public final class ImagePaletteView extends ViewPart implements + ISelectionListener { + + private final class PaletteMenuCreator implements IMenuCreator, + SelectionListener { + private Menu menu; + private Map images; + + public PaletteMenuCreator() { + images = new HashMap(10); + } + + @Override + public Menu getMenu(Menu parent) { + return null; + } + + @Override + public Menu getMenu(Control parent) { + if (menu != null) { + menu.dispose(); + menu = null; + } + menu = new Menu(parent); + createMenuItem("Hires-1", PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_1, null)); + createMenuItem("Hires-2", PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.HIRES_2, null)); + + createMenuItem("Multi-1", PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.MULTI_1, null)); + createMenuItem("Multi-2", PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.MULTI_2, null)); + createMenuItem("Multi-3", PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.MULTI_3, null)); + createMenuItem("Multi-4", PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.MULTI_4, null)); + createMenuItem("Multi-5", PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.MULTI_5, null)); + createMenuItem("Multi-6", PaletteUtility.getPaletteColors( + PaletteType.ATARI_DEFAULT, Palette.MULTI_6, null)); + return menu; + } + + private void createMenuItem(String text, RGB[] rgbs) { + MenuItem item = new MenuItem(menu, SWT.NONE); + Image image = images.get(text); + if (image == null) { + int size = 16; + int width = rgbs.length * size; + int height = size; + PaletteData paletteData = new PaletteData(rgbs); + ImageData imageData = new ImageData(width, height, 8, + paletteData); + for (int i = 0; i < rgbs.length; i++) { + for (int y = 0; y < size; y++) { + for (int x = 0; x < size; x++) { + imageData.setPixel(i * size + x, y, i); + } + } + } + image = new Image(Display.getCurrent(), imageData); + images.put(text, image); + } + item.setImage(image); + item.setData(rgbs); + item.addSelectionListener(this); + } + + @Override + public void dispose() { + if (menu != null) { + menu.dispose(); + } + menu = null; + if (images != null) { + for (Image image : images.values()) { + image.dispose(); + } + images = null; + } + } + + @Override + public void widgetSelected(SelectionEvent e) { + MenuItem item = (MenuItem) e.widget; + imageProvider.setPaletteRGBs((RGB[]) item.getData()); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + + } + } + + /** + * + * @author Peter Dell + * + */ + private static final class TableView { + + /** + * Data container for a row in the table view. + * + * @author Peter Dell + * + */ + private static final class Data { + private int index; + private int pixelColor; + private RGB rgb; + private int pixelColorCount; + private int pixelColorCountPercent; + + public Data(int index, Integer pixelColor, RGB rgb, + int pixelColorCount, int pixelColorCountPercent) { + if (pixelColor == null) { + throw new IllegalArgumentException( + "Parameter 'pixelColor' must not be null."); + } + if (rgb == null) { + throw new IllegalArgumentException( + "Parameter 'rgb' must not be null."); + } + this.index = index; + this.pixelColor = pixelColor.intValue(); + this.rgb = rgb; + this.pixelColorCount = pixelColorCount; + this.pixelColorCountPercent = pixelColorCountPercent; + } + + public int getIndex() { + return index; + } + + public int getPixelColor() { + return pixelColor; + } + + public RGB getRGB() { + return rgb; + } + + public int getPixelColorCount() { + return pixelColorCount; + } + + public int getPixelColorCountPercent() { + return pixelColorCountPercent; + } + } + + /** + * Comparator to sort lists of {@link Data}. + * + * @author Peter Dell + * + */ + private class DataComparator implements Comparator { + + private TableColumn sortColumn; + private int sortDirection; + + /** + * Creates a new comparator. + * + * @param sortColumn + * The column to sort by, not null. + * @param direction + * The direction to sort by, see {@link SWT#UP} or + * {@link SWT#DOWN}. + */ + public DataComparator(TableColumn sortColumn, int direction) { + if (sortColumn == null) { + throw new IllegalArgumentException( + "Parameter 'sortColumn' must not be null."); + } + this.sortColumn = sortColumn; + this.sortDirection = direction == SWT.UP ? 1 : -1; + } + + @Override + public int compare(Data o1, Data o2) { + if (sortColumn == indexColumn) { + return (o1.getIndex() - o2.getIndex()) * sortDirection; + } else if (sortColumn == pixelColorHexColumn + || sortColumn == pixelColorBinaryColumn) { + return (o1.getPixelColor() - o2.getPixelColor()) + * sortDirection; + } else if (sortColumn == rgbColorColumn) { + // Sort by brightness + float b1 = o1.getRGB().getHSB()[2]; + float b2 = o2.getRGB().getHSB()[2]; + if (b1 > b2) { + return sortDirection; + } else if (b1 < b2) { + return -sortDirection; + } + return 0; + } else if (sortColumn == pixelColorCountColumn + || sortColumn == pixelColorCountPercentColumn) { + return (o1.getPixelColorCount() - o2.getPixelColorCount()) + * sortDirection; + } + return 0; + } + + } + + // Standard width of a column. + private static final int WIDTH = 47; + + // Objects created in the constructor. + private final ImagePaletteView owner; + private final Table table; + private final Listener defaultSelectionListener; + final TableColumn indexColumn; + final TableColumn pixelColorHexColumn; + final TableColumn pixelColorBinaryColumn; + final TableColumn rgbColorColumn; + final TableColumn pixelColorCountColumn; + final TableColumn pixelColorCountPercentColumn; + + // The image cache map. + private Map images; + + // The image color histogram containing the original data. + private ImageColorHistogram imageColorHistogram; + + // The data list containing the converted image color histogram data. + private List dataList; + + public TableView(Composite parent, final ImagePaletteView owner) { + if (parent == null) { + throw new IllegalArgumentException( + "Parameter 'parent' must not be null."); + } + if (owner == null) { + throw new IllegalArgumentException( + "Parameter 'owner' must not be null."); + } + this.owner = owner; + + table = new Table(parent, SWT.VIRTUAL | SWT.BORDER | SWT.SINGLE + | SWT.FULL_SELECTION); + table.setLayoutData(new GridData(GridData.FILL_BOTH)); + + table.setHeaderVisible(true); + + /* + * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. + * Therefore, it is critical for performance that these methods be + * as efficient as possible. + */ + table.addListener(SWT.EraseItem, new Listener() { + @Override + public void handleEvent(Event event) { + eraseItem(event); + } + }); + + defaultSelectionListener = new Listener() { + @Override + public void handleEvent(Event e) { + editColor(); + } + }; + + // The first column is always left aligned in SWT due to a + // restriction in windows. + // This is a trick to come round this restriction. + TableColumn dummyColumn; + dummyColumn = new TableColumn(table, SWT.LEFT); + dummyColumn.setWidth(0); + + indexColumn = new TableColumn(table, SWT.RIGHT); + indexColumn.setText("Index"); + indexColumn.setText(Texts.IMAGE_PALETTE_VIEW_COLUMN_INDEX_TEXT); + pixelColorHexColumn = new TableColumn(table, SWT.RIGHT); + pixelColorHexColumn.setText("Hex"); + pixelColorHexColumn + .setText(Texts.IMAGE_PALETTE_VIEW_COLUMN_COLOR_HEX_TEXT); + pixelColorBinaryColumn = new TableColumn(table, SWT.RIGHT); + pixelColorBinaryColumn + .setText(Texts.IMAGE_PALETTE_VIEW_COLUMN_COLOR_BINARY_TEXT); + rgbColorColumn = new TableColumn(table, SWT.RIGHT); + rgbColorColumn + .setText(Texts.IMAGE_PALETTE_VIEW_COLUMN_RGB_COLOR_TEXT); + pixelColorCountColumn = new TableColumn(table, SWT.RIGHT); + pixelColorCountColumn + .setText(Texts.IMAGE_PALETTE_VIEW_COLUMN_COLOR_COUNT_TEXT); + pixelColorCountPercentColumn = new TableColumn(table, SWT.RIGHT); + pixelColorCountPercentColumn + .setText(Texts.IMAGE_PALETTE_VIEW_COLUMN_COLOR_COUNT_PERCENT_TEXT); + + indexColumn.setWidth(WIDTH); + pixelColorHexColumn.setWidth(WIDTH); + pixelColorBinaryColumn.setWidth(WIDTH); + rgbColorColumn.setWidth(90); + pixelColorCountColumn.setWidth(WIDTH); + pixelColorCountPercentColumn.setWidth(WIDTH); + + table.addListener(SWT.SetData, new Listener() { + @Override + public void handleEvent(Event event) { + + updateTableItem(event); + } + }); + + // Add sort indicator and sort data when column selected + Listener sortListener = new Listener() { + @Override + public void handleEvent(Event event) { + sortTableColumn(event); + } + }; + indexColumn.addListener(SWT.Selection, sortListener); + pixelColorHexColumn.addListener(SWT.Selection, sortListener); + pixelColorBinaryColumn.addListener(SWT.Selection, sortListener); + rgbColorColumn.addListener(SWT.Selection, sortListener); + pixelColorCountColumn.addListener(SWT.Selection, sortListener); + pixelColorCountPercentColumn.addListener(SWT.Selection, + sortListener); + + table.setSortColumn(indexColumn); + table.setSortDirection(SWT.UP); + + images = new HashMap(); + imageColorHistogram = null; + dataList = new ArrayList(); + } + + public void clear() { + if (!table.isDisposed()) { + table.setItemCount(0); + table.clearAll(); + } + + for (Image image : images.values()) { + image.dispose(); + } + images.clear(); + + imageColorHistogram = null; + dataList.clear(); + } + + public void setFocus() { + table.setFocus(); + } + + void updateTableItem(Event event) { + if (event == null) { + throw new IllegalArgumentException( + "Parameter 'event' must not be null."); + } + TableItem item = (TableItem) event.item; + Font font = JFaceResources.getTextFont(); + int i = table.indexOf(item); + Data data = dataList.get(i); + item.setData(data); + item.setText(1, + NumberUtility.getLongValueDecimalString(data.getIndex())); + + // Pixel color values are uninteresting for direct palettes. + if (!imageColorHistogram.isDirectPalette()) { + item.setText(2, + HexUtility.getLongValueHexString(data.getPixelColor())); + item.setFont(2, font); + item.setText(3, Integer.toBinaryString(data.getPixelColor())); + item.setFont(3, font); + } + RGB rgb = data.getRGB(); + + // Images are resources which have to be disposed, so handle + Image image = images.get(rgb); + if (image == null) { + PaletteData paletteData = new PaletteData(new RGB[] { rgb }); + ImageData imageData = new ImageData(32, 16, 1, paletteData); + image = new Image(table.getDisplay(), imageData); + images.put(rgb, image); + } + item.setImage(4, image); + item.setText(4, PaletteUtility.getPaletteColorText(rgb)); + item.setFont(4, font); + item.setText(5, NumberUtility.getLongValueDecimalString(data + .getPixelColorCount())); + item.setText(6, NumberUtility.getLongValueDecimalString(data + .getPixelColorCountPercent())); + + } + + void eraseItem(Event event) { + if (event == null) { + throw new IllegalArgumentException( + "Parameter 'event' must not be null."); + } + event.detail &= ~SWT.HOT; + if ((event.detail & SWT.SELECTED) != 0) { + GC gc = event.gc; + Rectangle area = table.getClientArea(); + /* + * If you wish to paint the selection beyond the end of last + * column, you must change the clipping region. + */ + int columnCount = table.getColumnCount(); + if (event.index == columnCount - 1 || columnCount == 0) { + int width = area.x + area.width - event.x; + if (width > 0) { + Region region = new Region(); + gc.getClipping(region); + region.add(event.x, event.y, width, event.height); + gc.setClipping(region); + region.dispose(); + } + } + gc.setAdvanced(true); + if (gc.getAdvanced()) { + gc.setAlpha(127); + } + Rectangle rect = event.getBounds(); + Color foreground = gc.getForeground(); + + gc.setForeground(table.getDisplay().getSystemColor( + SWT.COLOR_RED)); + gc.fillRectangle(0, rect.y, 500, rect.height - 1); + + // Restore colors for subsequent drawing + gc.setForeground(foreground); + // Mark event as handled + event.detail &= ~SWT.SELECTED; + } + } + + void sortTableColumn(Event event) { + if (event == null) { + throw new IllegalArgumentException( + "Parameter 'event' must not be null."); + } + // determine new sort column and direction + TableColumn sortColumn = table.getSortColumn(); + TableColumn currentColumn = (TableColumn) event.widget; + int direction = table.getSortDirection(); + if (sortColumn == currentColumn) { + direction = direction == SWT.UP ? SWT.DOWN : SWT.UP; + } else { + table.setSortColumn(currentColumn); + direction = SWT.UP; + } + table.setSortDirection(direction); + + Collections.sort(dataList, new DataComparator( + table.getSortColumn(), table.getSortDirection())); + // Update data displayed in table + table.clearAll(); + } + + void editColor() { + TableItem[] selection = table.getSelection(); + if (selection.length == 1) { + Data data = (Data) selection[0].getData(); + ColorDialog colorDialog = new ColorDialog(table.getShell()); + colorDialog.setRGB(data.getRGB()); + RGB newRGB = colorDialog.open(); + + if (newRGB != null) { + owner.imageProvider.setPaletteRGB(data.getPixelColor(), + newRGB); + } + } + } + + public void setImageColorHistogram( + ImageColorHistogram imageColorHistogram, + boolean paletteChangeable, boolean showUnusedColors, + boolean force) { + if (imageColorHistogram == null) { + clear(); + } else if (this.imageColorHistogram != imageColorHistogram || force) { + clear(); + this.imageColorHistogram = imageColorHistogram; + + // Register double click only if palette is changeable. + table.removeListener(SWT.DefaultSelection, + defaultSelectionListener); + if (paletteChangeable) { + table.addListener(SWT.DefaultSelection, + defaultSelectionListener); + } + + // For direct palette, display only used pixel colors. + // For indexed palette, display either all pixel colors or only + // used pixel colors. + List pixelColors; + if (imageColorHistogram.isDirectPalette()) { + pixelColors = imageColorHistogram.getUsedPixelColors(); + } else { + if (showUnusedColors) { + pixelColors = imageColorHistogram + .getPalettePixelColors(); + } else { + pixelColors = imageColorHistogram.getUsedPixelColors(); + } + } + + // Hide unused column in direct palette mode. + if (imageColorHistogram.isDirectPalette()) { + pixelColorHexColumn.setWidth(0); + pixelColorBinaryColumn.setWidth(0); + } else { + pixelColorHexColumn.setWidth(WIDTH); + pixelColorBinaryColumn.setWidth(WIDTH); + } + + // Create data list. + int size = pixelColors.size(); + int pixelCount = imageColorHistogram.getPixelCount(); + for (int i = 0; i < size; i++) { + Integer pixelColor = pixelColors.get(i); + int pixelColorCount = imageColorHistogram + .getPixelColorCount(pixelColor); + int pixelColorCountPercent = ((pixelColorCount * 100) / pixelCount); + RGB rgb = imageColorHistogram.getRGB(pixelColor); + Data data = new Data(i, pixelColor, rgb, pixelColorCount, + pixelColorCountPercent); + dataList.add(data); + } + + Collections.sort( + dataList, + new DataComparator(table.getSortColumn(), table + .getSortDirection())); + table.setItemCount(dataList.size()); + table.setSelection(0); + } + + } + } + + // ID of this view in the plugin manifest. + public static final String ID = ImagePaletteView.class.getName(); + + // UI components, not final because they are created outside of the + // constructor. + private IAction editColorAction; + private IAction showUnusedColorsAction; + private Label infoLabel; + private TableView tableView; + + // The currently active image provider or null. + ImageProvider imageProvider; + + /** + * Creation is private. + */ + public ImagePaletteView() { + } + + @Override + public void createPartControl(Composite parent) { + + IToolBarManager toolBarManager = getViewSite().getActionBars() + .getToolBarManager(); + + editColorAction = new Action( + Texts.IMAGE_PALETTE_VIEW_EDIT_COLOR_ACTION_LABEL, + IAction.AS_DROP_DOWN_MENU) { + @Override + public void run() { + editColor(); + } + }; + editColorAction + .setToolTipText(Texts.IMAGE_PALETTE_VIEW_EDIT_COLOR_ACTION_TOOLTIP); + editColorAction.setMenuCreator(new PaletteMenuCreator()); + + showUnusedColorsAction = new Action( + Texts.IMAGE_PALETTE_VIEW_UNUSED_COLORS_ACTION_LABEL, + IAction.AS_CHECK_BOX) { + @Override + public void run() { + showUnusedColors(); + } + }; + showUnusedColorsAction + .setToolTipText(Texts.IMAGE_PALETTE_VIEW_UNUSED_COLORS_ACTION_TOOLTIP); + + toolBarManager.add(editColorAction); + toolBarManager.add(showUnusedColorsAction); + + // presetColorsAction.setText("Test"); + + GridLayout gridLayout = new GridLayout(); + gridLayout.marginWidth = 0; + gridLayout.marginHeight = 0; + parent.setLayout(gridLayout); + + Composite infoComposite = new Composite(parent, SWT.NONE); + gridLayout = new GridLayout(1, false); + gridLayout.marginHeight = 0; + infoComposite.setLayout(gridLayout); + GridData gd = new GridData(GridData.FILL_HORIZONTAL); + infoComposite.setLayoutData(gd); + infoLabel = new Label(infoComposite, SWT.NONE); + infoLabel.setLayoutData(gd); + + tableView = new TableView(parent, this); + + // Add this as a global selection listener + getSite().getPage().addSelectionListener(this); + + // Preset based on current selection + selectionChanged(null, getSite().getPage().getSelection()); + + } + + void editColor() { + tableView.editColor(); + } + + void showUnusedColors() { + ImageColorHistogram imageColorHistogram = imageProvider + .getImageColorHistogram(); + boolean paletteChangeable = imageProvider.isPaletteChangeable(); + tableView.setImageColorHistogram(imageColorHistogram, + paletteChangeable, showUnusedColorsAction.isChecked(), true); + } + + @Override + public void setFocus() { + tableView.setFocus(); + } + + @Override + public void dispose() { + + if (tableView != null) { + tableView.clear(); + } + + if (imageProvider != null) { + imageProvider.setImagePaletteView(null); + imageProvider = null; + } + + editColorAction.getMenuCreator().dispose(); + getSite().getPage().removeSelectionListener(this); + super.dispose(); + } + + @Override + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + + if (part == null) { + setImageProvider(null); + } else { + if (part instanceof GraphicsEditor) { + GraphicsEditor graphicsEditor = ((GraphicsEditor) part); + setImageProvider(graphicsEditor.getImageProvider()); + } + } + } + + /** + * Sets the image provider. + * + * @param imageProvider + * The image provider or null. + */ + public void setImageProvider(ImageProvider imageProvider) { + if (imageProvider != this.imageProvider) { + // Unregister from old provider + if (this.imageProvider != null) { + this.imageProvider.setImagePaletteView(null); + this.imageProvider = null; + } + + // Register with new provider + if (imageProvider != null) { + this.imageProvider = imageProvider; + this.imageProvider.setImagePaletteView(this); + } + } + dataToUI(); + } + + /** + * Retrieve the current status from the image provider and display it. + * + */ + public void dataToUI() { + boolean enabled; + + if (imageProvider != null) { + ImageColorHistogram imageColorHistogram = imageProvider + .getImageColorHistogram(); + boolean paletteChangeable = imageProvider.isPaletteChangeable(); + editColorAction.setEnabled(paletteChangeable); + + enabled = (imageColorHistogram != null) + && !imageColorHistogram.isDirectPalette(); + showUnusedColorsAction.setEnabled(enabled); + + String text; + if (imageColorHistogram != null) { + int palettBits = imageColorHistogram.getPaletteBits(); + if (imageColorHistogram.isDirectPalette()) { + text = TextUtility + .format(Texts.IMAGE_PALETTE_VIEW_INFO_DIRECT_PALETTE_IMAGE, + NumberUtility + .getLongValueDecimalString(palettBits), + NumberUtility + .getLongValueDecimalString(imageColorHistogram + .getUsedPixelColors() + .size())); + } else { + text = TextUtility + .format(Texts.IMAGE_PALETTE_VIEW_INFO_INDEXED_PALETTE_IMAGE, + NumberUtility + .getLongValueDecimalString(palettBits), + + NumberUtility + .getLongValueDecimalString(imageColorHistogram + .getUsedPixelColors() + .size()), + NumberUtility + .getLongValueDecimalString(1 << palettBits)); + } + } else { + text = Texts.IMAGE_PALETTE_VIEW_INFO_NO_IMAGE; + } + infoLabel.setText(text); + + tableView.setImageColorHistogram(imageColorHistogram, + paletteChangeable, showUnusedColorsAction.isChecked(), + false); + } else { + editColorAction.setEnabled(false); + showUnusedColorsAction.setEnabled(false); + infoLabel.setText(Texts.IMAGE_PALETTE_VIEW_INFO_NO_IMAGE); + tableView.clear(); + } + + } + +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageProvider.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageProvider.java new file mode 100644 index 00000000..7cfaf7ff --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageProvider.java @@ -0,0 +1,57 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.editor; + +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.gfx.converter.ImageColorHistogram; +import com.wudsn.ide.gfx.model.Aspect; + +public interface ImageProvider { + + public void setImageView(ImageView imageView); + + public void setImagePaletteView(ImagePaletteView imagePaletteView); + + public Aspect getAspect(); + + public void setAspect(Aspect value); + + public boolean isShrinkToFit(); + + public void setShrinkToFit(boolean value); + + public boolean isZoomToFit(); + + public void setZoomToFit(boolean value); + + public ImageData getImageData(); + + public ImageColorHistogram getImageColorHistogram(); + + public boolean isPaletteChangeable(); + + public void setPaletteRGBs(RGB[] rgbs); + + public void setPaletteRGB(int pixelColor, RGB rgb); + + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageView.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageView.java new file mode 100644 index 00000000..ab76ed9c --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/editor/ImageView.java @@ -0,0 +1,288 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.editor; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.jface.action.ControlContribution; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.ISelectionListener; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.ViewPart; + +import com.wudsn.ide.base.gui.Action; +import com.wudsn.ide.base.gui.ActionListener; +import com.wudsn.ide.base.gui.MessageManager; +import com.wudsn.ide.base.gui.SWTFactory; +import com.wudsn.ide.gfx.Texts; +import com.wudsn.ide.gfx.converter.ConverterCommonParameters; +import com.wudsn.ide.gfx.gui.AspectField; +import com.wudsn.ide.gfx.gui.ImageCanvas; +import com.wudsn.ide.gfx.model.Aspect; + +/** + * This ImageView class shows the image from an {@link ImageProvider} in an + * {@link ImageCanvas}. + * + * @author Peter Dell + * @author Chengdong Li: cli4@uky.edu + * + * @see ImageCanvas + */ + +public final class ImageView extends ViewPart implements ISelectionListener { + + private final class AspectControlContribution extends ControlContribution implements ActionListener { + + private boolean enabled; + private Aspect value; + private AspectField aspectField; + private Action action; + + public AspectControlContribution() { + super("com.wudsn.ide.gfx.editor.ImageViewAspect"); + enabled = false; + value = new Aspect(1, 1); + } + + @Override + protected Control createControl(Composite parent) { + Composite composite = SWTFactory.createComposite(parent, 2, 1, GridData.FILL_HORIZONTAL); + GridLayout gridLayout = (GridLayout) composite.getLayout(); + gridLayout.marginHeight = 0; + aspectField = new AspectField(composite, Texts.IMAGE_VIEW_ASPECT_LABEL); + aspectField.setEnabled(enabled); + aspectField.setValue(value); + action = new Action(1, this); + aspectField.addSelectionAction(action); + + messageManager.registerField(aspectField, ConverterCommonParameters.MessageIds.DISPLAY_ASPECT); + return composite; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + if (aspectField != null) { + aspectField.setEnabled(enabled); + } + } + + public void setValue(Aspect value) { + this.value = value; + if (aspectField != null) { + aspectField.setValue(value); + } + } + + @Override + public void performAction(Action action) { + imageProvider.setAspect(aspectField.getValue()); + } + } + + public static final String ID = ImageView.class.getName(); + MessageManager messageManager; + + private AspectControlContribution aspectControlContribution; + IAction shrinkToFitAction; + IAction zoomToFitAction; + private ImageCanvas imageCanvas; + + ImageProvider imageProvider; + + /** + * Creation is private. + */ + public ImageView() { + messageManager = new MessageManager(this); + } + + @Override + public void createPartControl(Composite parent) { + + IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager(); + + aspectControlContribution = new AspectControlContribution(); + + shrinkToFitAction = new org.eclipse.jface.action.Action("Shrink", IAction.AS_CHECK_BOX) { + @Override + public void run() { + imageProvider.setShrinkToFit(shrinkToFitAction.isChecked()); + } + }; + zoomToFitAction = new org.eclipse.jface.action.Action("Zoom", IAction.AS_CHECK_BOX) { + @Override + public void run() { + imageProvider.setZoomToFit(zoomToFitAction.isChecked()); + } + }; + + toolBarManager.add(aspectControlContribution); + toolBarManager.add(shrinkToFitAction); + toolBarManager.add(zoomToFitAction); + + imageCanvas = new ImageCanvas(parent, SWT.NONE); + + // Currently there's no use-case for reacting on the mouse position. + // imageCanvas.addMouseMoveListener(new MouseMoveListener() { + // public void mouseMove(MouseEvent event) { + // Point point; + // messageManager.clearMessages(); + // + // point = imageCanvas.getPoint(event); + // messageManager.sendMessage( + // 0, + // IStatus.INFO, + // "x={0} y={1}", + // new String[] { + // NumberUtility + // .getLongValueDecimalString(point.x), + // + // NumberUtility + // .getLongValueDecimalString(point.y) }); + // messageManager.displayMessages(); + // + // } + // }); + + // Add this as a global selection listener + getSite().getPage().addSelectionListener(this); + + // Preset based on current selection + selectionChanged(null, getSite().getPage().getSelection()); + } + + @Override + public void setFocus() { + imageCanvas.setFocus(); + } + + @Override + public void dispose() { + + if (imageProvider != null) { + imageProvider.setImageView(null); + imageProvider = null; + } + + getSite().getPage().removeSelectionListener(this); + imageCanvas.dispose(); + super.dispose(); + } + + @Override + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + + if (part == null) { + setImageProvider(null); + } else { + if (part instanceof GraphicsEditor) { + GraphicsEditor graphicsEditor = ((GraphicsEditor) part); + setImageProvider(graphicsEditor.getImageProvider()); + System.out.println(this + "" + part + "" + selection); + } + } + } + + /** + * Sets the image provider. + * + * @param imageProvider + * The image provider or null. + */ + public void setImageProvider(ImageProvider imageProvider) { + if (imageProvider != this.imageProvider) { + // Unregister from old provider + if (this.imageProvider != null) { + this.imageProvider.setImageView(null); + this.imageProvider = null; + } + + // Register with new provider + if (imageProvider != null) { + this.imageProvider = imageProvider; + this.imageProvider.setImageView(this); + } + } + dataToUI(); + + } + + /** + * Retrieve the current status from the image provider and display it. + * + */ + public void dataToUI() { + ImageData imageData; + boolean enabled; + + messageManager.clearMessages(); + if (imageProvider != null) { + imageData = imageProvider.getImageData(); + enabled = (imageData != null); + + aspectControlContribution.setEnabled(enabled); + aspectControlContribution.setValue(imageProvider.getAspect()); + shrinkToFitAction.setEnabled(false); + shrinkToFitAction.setChecked(imageProvider.isShrinkToFit()); + shrinkToFitAction.setEnabled(enabled); + zoomToFitAction.setEnabled(false); + zoomToFitAction.setChecked(imageProvider.isZoomToFit()); + zoomToFitAction.setEnabled(enabled); + imageCanvas.setShrinkToFit(imageProvider.isShrinkToFit()); + imageCanvas.setZoomToFit(imageProvider.isZoomToFit()); + + boolean valid; + ImageData displayImageData; + + Aspect aspect = imageProvider.getAspect(); + if (aspect.isValid()) { + valid = true; + } else { + messageManager.sendMessage(ConverterCommonParameters.MessageIds.DISPLAY_ASPECT, IStatus.ERROR, + "Invalid display aspect"); + valid = false; + } + if (valid && imageData != null) { + int width = imageData.width; + int height = imageData.height; + displayImageData = imageData.scaledTo(width * aspect.getValidFactorX(), + height * aspect.getValidFactorY()); + } else { + displayImageData = null; + } + + imageCanvas.setImageData(displayImageData); + } else { + aspectControlContribution.setEnabled(false); + shrinkToFitAction.setEnabled(false); + zoomToFitAction.setEnabled(false); + imageCanvas.setImageData(null); + } + messageManager.displayMessages(); + } +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/AspectField.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/AspectField.java new file mode 100644 index 00000000..23e1dc0d --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/AspectField.java @@ -0,0 +1,134 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; + +import com.wudsn.ide.base.common.StringUtility; +import com.wudsn.ide.base.gui.Action; +import com.wudsn.ide.base.gui.Field; +import com.wudsn.ide.gfx.model.Aspect; +import com.wudsn.ide.gfx.model.AspectUtility; + +public final class AspectField extends Field { + + private Label label; + private Combo combo; + private List selectionActions; + + public AspectField(Composite parent, String labelText) { + if (parent == null) { + throw new IllegalArgumentException( + "Parameter 'parent' must not be null."); + } + if (labelText == null) { + throw new IllegalArgumentException( + "Parameter 'labelText' must not be null."); + } + + label = new Label(parent, SWT.NONE); + label.setText(labelText); + combo = new Combo(parent, SWT.DROP_DOWN); + + combo.add("1x1"); + combo.add("2x1"); + combo.add("2x2"); + combo.add("4x2"); + combo.add("4x4"); + + combo.select(0); + + selectionActions = new ArrayList(1); + } + + public void setValue(Aspect value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + for (Action action : selectionActions) { + action.setEnabled(false); + } + combo.setText(AspectUtility.toString(value)); + for (Action action : selectionActions) { + action.setEnabled(true); + } + } + + public Aspect getValue() { + Aspect result; + String text = combo.getText().toLowerCase(); + if (StringUtility.isEmpty(text)) { + result = new Aspect(1, 1); + } else { + result = AspectUtility.fromString(text); + } + return result; + + } + + /** + * {@inheritDoc} + */ + @Override + public Control getControl() { + return combo; + } + + /** + * {@inheritDoc} + */ + @Override + public void setEnabled(boolean enabled) { + label.setEnabled(enabled); + combo.setEnabled(enabled); + } + + /** + * {@inheritDoc} + */ + @Override + public void setEditable(boolean editable) { + // There is only a style SWT#READ_ONLY, but no changeable property + } + + /** + * Adds a selection action which is fire when the field content changes. + * + * @param action + * The selection action, not null. + */ + public void addSelectionAction(Action action) { + if (action == null) { + throw new IllegalArgumentException( + "Parameter 'action' must not be null."); + } + selectionActions.add(action); + combo.addSelectionListener(action); + } + +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ConverterIdField.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ConverterIdField.java new file mode 100644 index 00000000..cba855f0 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ConverterIdField.java @@ -0,0 +1,128 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.gui; + +import java.util.List; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; + +import com.wudsn.ide.base.gui.Field; +import com.wudsn.ide.gfx.GraphicsPlugin; +import com.wudsn.ide.gfx.converter.ConverterDefinition; +import com.wudsn.ide.gfx.converter.ConverterRegistry; +import com.wudsn.ide.gfx.model.ConverterDirection; + +public final class ConverterIdField extends Field { + + private Label label; + private Combo combo; + private List converterDefinitions; + + public ConverterIdField(Composite parent, String labelText, + ConverterDirection converterDirection) { + if (parent == null) { + throw new IllegalArgumentException( + "Parameter 'parent' must not be null."); + } + if (labelText == null) { + throw new IllegalArgumentException( + "Parameter 'labelText' must not be null."); + } + if (converterDirection == null) { + throw new IllegalArgumentException( + "Parameter 'converterDirection' must not be null."); + } + label = new Label(parent, SWT.NONE); + label.setText(labelText); + combo = new Combo(parent, SWT.DROP_DOWN); + + GraphicsPlugin plugin = GraphicsPlugin.getInstance(); + ConverterRegistry converterRegistry = plugin.getConverterRegistry(); + converterDefinitions = converterRegistry + .getDefinitions(converterDirection); + + combo.add(""); + for (ConverterDefinition converterDefinition : converterDefinitions) { + combo.add(converterDefinition.getName()); + } + combo.select(0); + + } + + /** + * {@inheritDoc} + */ + @Override + public Control getControl() { + return combo; + } + + /** + * {@inheritDoc} + */ + @Override + public void setEnabled(boolean enabled) { + label.setEnabled(enabled); + combo.setEnabled(enabled); + + } + + /** + * {@inheritDoc} + */ + @Override + public void setEditable(boolean editable) { + // There is only an SWT.READ_ONLY style but not property + } + + public void setValue(String value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + for (int i = 0; i < converterDefinitions.size(); i++) { + if (value.equals(converterDefinitions.get(i).getId())) { + combo.select(i + 1); + return; + } + } + combo.select(0); + } + + public String getValue() { + int index; + index = combo.getSelectionIndex(); + if (index == -1 || index == 0) { + return ""; + } + String result = converterDefinitions.get(index - 1).getId(); + return result; + } + + public void addSelectionListener(SelectionListener selectionListener) { + combo.addSelectionListener(selectionListener); + + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ImageCanvas.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ImageCanvas.java new file mode 100644 index 00000000..ae315690 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ImageCanvas.java @@ -0,0 +1,369 @@ +package com.wudsn.ide.gfx.gui; + +import java.awt.geom.AffineTransform; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ControlAdapter; +import org.eclipse.swt.events.ControlEvent; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.PaintEvent; +import org.eclipse.swt.events.PaintListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Canvas; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.ScrollBar; + +/** + * A scrollable SWT image canvas that extends org.eclipse.swt.graphics.Canvas. + * + * @author Peter Dell + * @author Chengdong Li: cli4@uky.edu + */ +public final class ImageCanvas extends Canvas { + + // Zoom settings + private boolean shrinkToFit; + private boolean zoomToFit; + + // Original image + private Image sourceImage; + + // Affine transform applied to the source image. + private AffineTransform transform; + + // Screen image + private Image screenImage; + + /** + * Constructor for ScrollableCanvas. + * + * @param parent + * The parent of this control, not null. + * @param style + * The style of this control. + */ + public ImageCanvas(final Composite parent, int style) { + super(parent, style | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL + | SWT.NO_BACKGROUND); + + // Register a resize listener + addControlListener(new ControlAdapter() { + @Override + public void controlResized(ControlEvent event) { + updateSize(); + } + }); + // Register a paint listener + addPaintListener(new PaintListener() { + @Override + public void paintControl(final PaintEvent event) { + paint(event.gc); + } + }); + + // Start with the identity transformation. + transform = new AffineTransform(); + initScrollBars(); + } + + /** + * Dispose the garbage here + */ + @Override + public void dispose() { + if (sourceImage != null && !sourceImage.isDisposed()) { + sourceImage.dispose(); + sourceImage = null; + } + if (screenImage != null && !screenImage.isDisposed()) { + screenImage.dispose(); + screenImage = null; + } + } + + /* Paint function */ + void paint(GC gc) { + // Canvas' painting area + Rectangle clientRectangle = getClientArea(); + + if (sourceImage != null) { + Rectangle imageRectangle = ImageCanvasUtility + .inverseTransformRectangle(transform, clientRectangle); + // Find a better start point to render + int gap = 2; + imageRectangle.x -= gap; + imageRectangle.y -= gap; + imageRectangle.width += 2 * gap; + imageRectangle.height += 2 * gap; + + Rectangle imageBounds = sourceImage.getBounds(); + imageRectangle = imageRectangle.intersection(imageBounds); + Rectangle destRect = ImageCanvasUtility.transformRectangle( + transform, imageRectangle); + + if (screenImage != null) { + screenImage.dispose(); + } + screenImage = new Image(getDisplay(), clientRectangle.width, + clientRectangle.height); + GC newGC = new GC(screenImage); + newGC.setBackground(getBackground()); + newGC.fillRectangle(clientRectangle); + newGC.setClipping(clientRectangle); + newGC.drawImage(sourceImage, imageRectangle.x, imageRectangle.y, + imageRectangle.width, imageRectangle.height, destRect.x, + destRect.y, destRect.width, destRect.height); + newGC.dispose(); + + gc.drawImage(screenImage, 0, 0); + } else { + gc.setClipping(clientRectangle); + gc.fillRectangle(clientRectangle); + initScrollBars(); + } + } + + /** + * Initializes the scrollbars and registers the listeners. + */ + private void initScrollBars() { + ScrollBar horizontal = getHorizontalBar(); + horizontal.setEnabled(false); + horizontal.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent event) { + scrollHorizontally((ScrollBar) event.widget); + } + }); + ScrollBar vertical = getVerticalBar(); + vertical.setEnabled(false); + vertical.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent event) { + scrollVertically((ScrollBar) event.widget); + } + }); + } + + /* Scroll horizontally */ + void scrollHorizontally(ScrollBar scrollBar) { + if (sourceImage == null) + return; + + AffineTransform af = transform; + double tx = af.getTranslateX(); + double select = -scrollBar.getSelection(); + af.preConcatenate(AffineTransform.getTranslateInstance(select - tx, 0)); + transform = af; + synchronizeScrollBars(); + } + + /* Scroll vertically */ + void scrollVertically(ScrollBar scrollBar) { + if (sourceImage == null) + return; + + AffineTransform af = transform; + double ty = af.getTranslateY(); + double select = -scrollBar.getSelection(); + af.preConcatenate(AffineTransform.getTranslateInstance(0, select - ty)); + transform = af; + synchronizeScrollBars(); + } + + /** + * Synchronize the scrollbars with the image. If the transform is out of + * range, this method will correct it. This function considers only + * following factors : transform, image size, client area size. + */ + void synchronizeScrollBars() { + if (sourceImage == null) { + redraw(); + return; + } + + AffineTransform af = transform; + double sx = af.getScaleX(), sy = af.getScaleY(); + double tx = af.getTranslateX(), ty = af.getTranslateY(); + if (tx > 0) { + tx = 0; + } + if (ty > 0) { + ty = 0; + } + + Rectangle clientArea = getClientArea(); + + ScrollBar horizontal = getHorizontalBar(); + horizontal.setIncrement((clientArea.width / 100)); + horizontal.setPageIncrement(clientArea.width); + Rectangle imageBound = sourceImage.getBounds(); + if (imageBound.width * sx > clientArea.width) { + // Image is wider than client area + horizontal.setMaximum((int) (imageBound.width * sx)); + horizontal.setEnabled(true); + if (((int) -tx) > horizontal.getMaximum() - clientArea.width) { + tx = -horizontal.getMaximum() + clientArea.width; + } + } else { + // Image is narrower than client area + horizontal.setEnabled(false); + // Center if too small. + tx = (clientArea.width - imageBound.width * sx) / 2; + } + horizontal.setSelection((int) (-tx)); + horizontal.setThumb(clientArea.width); + + ScrollBar vertical = getVerticalBar(); + vertical.setIncrement(clientArea.height / 100); + vertical.setPageIncrement(clientArea.height); + if (imageBound.height * sy > clientArea.height) { + // Image is higher than client area + vertical.setMaximum((int) (imageBound.height * sy)); + vertical.setEnabled(true); + if (((int) -ty) > vertical.getMaximum() - clientArea.height) { + ty = -vertical.getMaximum() + clientArea.height; + } + } else { + // Image is not as high as the client area + vertical.setEnabled(false); + // Center if too small + ty = (clientArea.height - imageBound.height * sy) / 2; + } + vertical.setSelection((int) (-ty)); + vertical.setThumb(clientArea.height); + + // Update transform using concatenation + af = AffineTransform.getScaleInstance(sx, sy); + af.preConcatenate(AffineTransform.getTranslateInstance(tx, ty)); + transform = af; + + redraw(); + } + + /** + * Sets the shrink to fit property. This will no update the image. + * + * @param shrinkToFit + * true to activate the automatic shrinking. + */ + public void setShrinkToFit(boolean shrinkToFit) { + this.shrinkToFit = shrinkToFit; + updateSize(); + } + + /** + * Sets the zoom to fit property. This will no update the image. + * + * @param zoomToFit + * true to activate the automatic zooming. + */ + public void setZoomToFit(boolean zoomToFit) { + this.zoomToFit = zoomToFit; + updateSize(); + } + + /** + * Reset the image data and update the image + * + * @param data + * image data to be set + */ + public void setImageData(ImageData data) { + Rectangle oldBounds = new Rectangle(-1, -1, -1, -1); + + if (sourceImage != null) { + oldBounds = sourceImage.getBounds(); + sourceImage.dispose(); + sourceImage = null; + } + + if (data != null) { + sourceImage = new Image(getDisplay(), data); + + if (!sourceImage.getBounds().equals(oldBounds)) { + updateSize(); + } else { + redraw(); + } + } else { + redraw(); + } + } + + public Image getImage() { + return sourceImage; + } + + /** + * Translates the x,y coordinates from a mouse event to the point + * coordinates in the original unscaled image. + * + * @param event + * The event, not null. + * @return The point or null. + */ + public Point getPoint(MouseEvent event) { + if (event == null) { + throw new IllegalArgumentException( + "Parameter 'event' must not be null."); + } + return new Point(event.x, event.y); + } + + /** + * Update the image size and scrollbar positions. + */ + void updateSize() { + if (sourceImage == null) { + redraw(); + return; + } + Rectangle imageBounds = sourceImage.getBounds(); + Rectangle clientArea = getClientArea(); + double sx = (double) clientArea.width / (double) imageBounds.width; + double sy = (double) clientArea.height / (double) imageBounds.height; + + if (!shrinkToFit) { + sx = Math.max(sx, 1.0); + sy = Math.max(sy, 1.0); + } + if (!zoomToFit) { + sx = Math.min(sx, 1.0); + sy = Math.min(sy, 1.0); + } + double s = Math.min(sx, sy); + double dx = 0.5 * clientArea.width; + double dy = 0.5 * clientArea.height; + zoom(dx, dy, s, new AffineTransform()); + } + + /** + * Perform a zooming operation centered on the given point (dx, dy) and + * using the given scale factor. The given AffineTransform instance is + * preconcatenated. + * + * @param dx + * center x + * @param dy + * center y + * @param scale + * zoom rate + * @param af + * original affinetransform + */ + private void zoom(double dx, double dy, double scale, AffineTransform af) { + af.preConcatenate(AffineTransform.getTranslateInstance(-dx, -dy)); + af.preConcatenate(AffineTransform.getScaleInstance(scale, scale)); + af.preConcatenate(AffineTransform.getTranslateInstance(dx, dy)); + transform = af; + synchronizeScrollBars(); + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ImageCanvasUtility.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ImageCanvasUtility.java new file mode 100644 index 00000000..9e75a6fb --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/ImageCanvasUtility.java @@ -0,0 +1,202 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.gui; + +import java.awt.geom.AffineTransform; +import java.awt.geom.NoninvertibleTransformException; +import java.awt.geom.Point2D; + +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; + +/** + * Utility for Java2d transform used by{@link ImageCanvas}. + * + * @author Peter Dell + * @author Chengdong Li: cli4@uky.edu + * + */ +final class ImageCanvasUtility { + + /** + * Creation is private. + */ + private ImageCanvasUtility() { + } + + /** + * Apply an affine transform to an SWT rectangle. The resulting SWT + * rectangle will have positive width and positive height. + * + * @param affineTransform + * The affine transform, not null. + * @param sourceRectangle + * The SWT source rectangle, not null. + * @return The SWT rectangle after transform with positive width and height, + * not null. + */ + public static Rectangle transformRectangle(AffineTransform affineTransform, + Rectangle sourceRectangle) { + if (affineTransform == null) { + throw new IllegalArgumentException( + "Parameter 'transform' must not be null."); + } + if (sourceRectangle == null) { + throw new IllegalArgumentException( + "Parameter 'sourceRectangle' must not be null."); + } + Rectangle result = new Rectangle(0, 0, 0, 0); + sourceRectangle = absoluteRectangle(sourceRectangle); + Point point = new Point(sourceRectangle.x, sourceRectangle.y); + point = transformPoint(affineTransform, point); + result.x = point.x; + result.y = point.y; + result.width = (int) (sourceRectangle.width * affineTransform + .getScaleX()); + result.height = (int) (sourceRectangle.height * affineTransform + .getScaleY()); + return result; + } + + /** + * Apply the inverse of an affine transform to an SWT rectangle. The + * resulting SWT rectangle will have positive width and positive height. + * + * @param affineTransform + * The affine transform, not null. + * @param sourceRectangle + * The SWT source rectangle, not null. + * @return The SWT rectangle after transform with positive width and height, + * not null. + */ + public static Rectangle inverseTransformRectangle( + AffineTransform affineTransform, Rectangle sourceRectangle) { + if (affineTransform == null) { + throw new IllegalArgumentException( + "Parameter 'transform' must not be null."); + } + if (sourceRectangle == null) { + throw new IllegalArgumentException( + "Parameter 'sourceRectangle' must not be null."); + } + Rectangle result = new Rectangle(0, 0, 0, 0); + sourceRectangle = absoluteRectangle(sourceRectangle); + Point p1 = new Point(sourceRectangle.x, sourceRectangle.y); + p1 = inverseTransformPoint(affineTransform, p1); + result.x = p1.x; + result.y = p1.y; + result.width = (int) (sourceRectangle.width / affineTransform + .getScaleX()); + result.height = (int) (sourceRectangle.height / affineTransform + .getScaleY()); + return result; + } + + /** + * Apply an affine transform to an SWT point. + * + * @param affineTransform + * The affine transform, not null. + * @param sourcePoint + * The SWT source point, not null. + * @return The SWT point after transform, not null. + */ + public static Point transformPoint(AffineTransform affineTransform, + Point sourcePoint) { + if (affineTransform == null) { + throw new IllegalArgumentException( + "Parameter 'affineTransform' must not be null."); + } + if (sourcePoint == null) { + throw new IllegalArgumentException( + "Parameter 'sourcePoint' must not be null."); + } + Point2D src = new Point2D.Float(sourcePoint.x, sourcePoint.y); + Point2D dest = affineTransform.transform(src, null); + Point result = new Point((int) Math.floor(dest.getX()), (int) Math + .floor(dest.getY())); + return result; + } + + /** + * Apply the inverse of an affine transform to an SWT point. + * + * @param affineTransform + * The affine transform, not null. + * @param sourcePoint + * The SWT source point, not null. + * @return The SWT point after transform, not null. + */ + public static Point inverseTransformPoint(AffineTransform affineTransform, + Point sourcePoint) { + + if (affineTransform == null) { + throw new IllegalArgumentException( + "Parameter 'affineTransform' must not be null."); + } + if (sourcePoint == null) { + throw new IllegalArgumentException( + "Parameter 'sourcePoint' must not be null."); + } + Point2D src = new Point2D.Float(sourcePoint.x, sourcePoint.y); + + Point2D dest; + try { + dest = affineTransform.inverseTransform(src, null); + } catch (NoninvertibleTransformException ex) { + throw new RuntimeException("Invalid transformation", ex); + } + Point result = new Point((int) Math.floor(dest.getX()), (int) Math + .floor(dest.getY())); + return result; + } + + /** + * Given arbitrary SWT rectangle, return a rectangle with upper-left start + * and positive width and height. + * + * @param sourceRectangle + * The SWT source rectangle, not null. + * @return result The equivalent SWT rectangle with positive width and + * height, not null. + */ + private static Rectangle absoluteRectangle(Rectangle sourceRectangle) { + if (sourceRectangle == null) { + throw new IllegalArgumentException( + "Parameter 'sourceRectangle' must not be null."); + } + Rectangle result = new Rectangle(0, 0, 0, 0); + if (sourceRectangle.width < 0) { + result.x = sourceRectangle.x + sourceRectangle.width + 1; + result.width = -sourceRectangle.width; + } else { + result.x = sourceRectangle.x; + result.width = sourceRectangle.width; + } + if (sourceRectangle.height < 0) { + result.y = sourceRectangle.y + sourceRectangle.height + 1; + result.height = -sourceRectangle.height; + } else { + result.y = sourceRectangle.y; + result.height = sourceRectangle.height; + } + return result; + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/SourceFileView.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/SourceFileView.java new file mode 100644 index 00000000..490c3a7c --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/SourceFileView.java @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.gui; + +import javax.swing.event.ChangeListener; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +import com.wudsn.ide.base.common.HexUtility; +import com.wudsn.ide.base.gui.FilePathField; +import com.wudsn.ide.base.gui.IntegerField; +import com.wudsn.ide.base.gui.TextField; +import com.wudsn.ide.gfx.Texts; + +public final class SourceFileView { + + private static final int[] EMPTY_DEFAULT_VALUES = new int[] { 0, 65535 }; + + private final FilePathField filePathField; + private final TextField fileSizeField; + private final IntegerField fileOffsetField; + private final Label dummyLabel; + + public SourceFileView(Composite parent, String labelText, int dialogMode) { + if (parent == null) { + throw new IllegalArgumentException("Parameter 'parent' must not be null."); + } + if (dialogMode != SWT.OPEN && dialogMode != SWT.SAVE) { + throw new IllegalArgumentException( + "Parameter 'dialogMode' must be 'SWT.OPEN' or 'SWT.SAVE'. Specified value is " + dialogMode + "-"); + } + + filePathField = new FilePathField(parent, labelText, dialogMode); + + fileSizeField = new TextField(parent, Texts.FILE_SECTION_FIELD_SIZE_LABEL, SWT.READ_ONLY); + + fileOffsetField = new IntegerField(parent, Texts.FILE_SECTION_FIELD_OFFSET_LABEL, EMPTY_DEFAULT_VALUES, true, + 4, SWT.NONE); + + dummyLabel = new Label(parent, SWT.NONE); + } + + public FilePathField getFilePathField() { + return filePathField; + } + + public IntegerField getFileOffsetField() { + return fileOffsetField; + } + + /** + * Sets the path prefix which will be stripped automatically if it is the + * prefix of the user input. + * + * @param filePathPrefix + * The file path prefix, may be empty, not null. + */ + public void setFilePathPrefix(IPath filePathPrefix) { + if (filePathPrefix == null) { + throw new IllegalArgumentException("Parameter 'filePathPrefix' must not be null."); + } + filePathField.setFilePathPrefix(filePathPrefix); + } + + public void setFilePath(String filePath) { + filePathField.setValue(filePath); + } + + public String getFilePath() { + return filePathField.getValue(); + } + + public void setFileBytes(byte[] bytes) { + if (bytes == null) { + fileSizeField.setValue(Texts.FILE_SECTION_FIELD_SIZE_NO_DATA); + fileOffsetField.setDefaultValues(EMPTY_DEFAULT_VALUES); + } else { + fileSizeField.setValue(HexUtility.getLongValueHexString(bytes.length)); + + int step = (bytes.length + 15) / 16; + int[] defaultValues = new int[16]; + + for (int i = 0; i < 16; i++) { + defaultValues[i] = i * step; + } + + fileOffsetField.setDefaultValues(defaultValues); + } + } + + public void setFileOffset(int fileOffset) { + fileOffsetField.setValue(fileOffset); + } + + public int getFileOffset() { + return fileOffsetField.getValue(); + } + + public void setVisible(boolean visible) { + filePathField.setVisible(visible); + fileSizeField.setVisible(visible); + fileOffsetField.setVisible(visible); + dummyLabel.setVisible(visible); + } + + public void setEnabled(boolean enabled) { + filePathField.setEnabled(enabled); + fileSizeField.setEnabled(enabled); + fileOffsetField.setEnabled(enabled); + dummyLabel.setEnabled(enabled); + } + + /** + * Adds a change listener. + * + * @param changeListener + * The change listener , not null. + */ + public void addChangeListener(ChangeListener changeListener) { + if (changeListener == null) { + throw new IllegalArgumentException("Parameter 'changeListener' must not be null."); + } + filePathField.addChangeListener(changeListener); + fileOffsetField.addChangeListener(changeListener); + + } +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/TargetFileView.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/TargetFileView.java new file mode 100644 index 00000000..a0c93466 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/gui/TargetFileView.java @@ -0,0 +1,119 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ +package com.wudsn.ide.gfx.gui; + +import javax.swing.event.ChangeListener; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; + +import com.wudsn.ide.base.common.HexUtility; +import com.wudsn.ide.base.gui.FilePathField; +import com.wudsn.ide.base.gui.TextField; +import com.wudsn.ide.gfx.Texts; + +public final class TargetFileView { + + private final FilePathField filePathField; + private final TextField fileSizeField; + + public TargetFileView(Composite parent, String labelText, int dialogMode) { + if (parent == null) { + throw new IllegalArgumentException( + "Parameter 'parent' must not be null."); + } + if (dialogMode != SWT.OPEN && dialogMode != SWT.SAVE) { + throw new IllegalArgumentException( + "Parameter 'dialogMode' must be 'SWT.OPEN' or 'SWT.SAVE'. Specified value is " + + dialogMode + "-"); + } + + filePathField = new FilePathField(parent, labelText, dialogMode); + + fileSizeField = new TextField(parent, + Texts.FILE_SECTION_FIELD_SIZE_LABEL, SWT.READ_ONLY); + } + + public FilePathField getFilePathField() { + return filePathField; + } + + /** + * Sets the path prefix which will be stripped automatically if it is the + * prefix of the user input. + * + * @param filePathPrefix + * The file path prefix, may be empty, not null. + */ + public void setFilePathPrefix(IPath filePathPrefix) { + if (filePathPrefix == null) { + throw new IllegalArgumentException( + "Parameter 'filePathPrefix' must not be null."); + } + filePathField.setFilePathPrefix(filePathPrefix); + } + + public void setFilePath(String filePath) { + filePathField.setValue(filePath); + } + + public String getFilePath() { + return filePathField.getValue(); + } + + public void setFileBytes(byte[] bytes) { + if (bytes == null) { + fileSizeField.setValue(Texts.FILE_SECTION_FIELD_SIZE_NO_DATA); + } else { + fileSizeField.setValue(HexUtility + .getLongValueHexString(bytes.length)); + + int step = (bytes.length + 15) / 16; + int[] defaultValues = new int[16]; + + for (int i = 0; i < 16; i++) { + defaultValues[i] = i * step; + } + } + } + + public void setVisible(boolean visible) { + filePathField.setVisible(visible); + fileSizeField.setVisible(visible); + } + + public void setEnabled(boolean enabled) { + filePathField.setEnabled(enabled); + fileSizeField.setEnabled(enabled); + } + + /** + * Adds a change listener. + * + * @param changeListener + * The change listener , not null. + */ + public void addChangeListener(ChangeListener changeListener) { + if (changeListener == null) { + throw new IllegalArgumentException("Parameter 'changeListener' must not be null."); + } + filePathField.addChangeListener(changeListener); + } +} \ No newline at end of file diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/Aspect.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/Aspect.java new file mode 100644 index 00000000..bc387ff4 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/Aspect.java @@ -0,0 +1,82 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ +package com.wudsn.ide.gfx.model; + +public final class Aspect { + + private int factorX; + private int factorY; + + public Aspect(int factorX, int factorY) { + this.factorX = factorX; + this.factorY = factorY; + } + + public int getFactorX() { + return factorX; + } + + public int getFactorY() { + return factorY; + } + + public int getValidFactorX() { + if (isValid()) { + return factorX; + } + return 1; + } + + public int getValidFactorY() { + if (isValid()) { + return factorY; + } + return 1; + } + + public boolean isValid() { + return factorX > 0 && factorX < 32 && factorY > 0 && factorY < 32; + } + + @Override + public boolean equals(Object obj) { + + if (obj instanceof Aspect) { + Aspect aspect; + aspect = (Aspect) obj; + if (aspect.getFactorX() == factorX + && aspect.getFactorY() == factorY) { + return true; + } + } + return false; + } + + @Override + public int hashCode() { + + return factorX+17*factorY; + } + + @Override + public String toString() { + return factorX + "x" + factorY; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/AspectUtility.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/AspectUtility.java new file mode 100644 index 00000000..0716ca8f --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/AspectUtility.java @@ -0,0 +1,93 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ +package com.wudsn.ide.gfx.model; + +import com.wudsn.ide.base.common.StringUtility; + +public final class AspectUtility { + + /** + * Creation is private. + */ + private AspectUtility() { + } + + /** + * Gets the language independent string representation of an aspect. + * + * @param value + * The aspect or nullnull. + */ + public static String toString(Aspect value) { + String result; + if (value == null) { + result = ""; + } else { + result = value.getFactorX() + "x" + value.getFactorY(); + } + return result; + } + + /** + * Gets the aspect for a language independent string representation. + * + * @param value + * The language independent string representation, may be empty, + * not null. + * @return The XYFactor or null in case the value was empty. + */ + public static Aspect fromString(String value) { + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + + Aspect result; + int factorX; + int factorY; + + if (StringUtility.isEmpty(value)) { + result = null; + } else { + int index = value.indexOf('x'); + if (index > 0) { + String intValue = value.substring(0, index); + try { + factorX = Integer.parseInt(intValue); + } catch (NumberFormatException ex) { + factorX = -1; + } + intValue = value.substring(index + 1, value.length()); + try { + factorY = Integer.parseInt(intValue); + } catch (NumberFormatException ex) { + factorY = -1; + } + } else { + factorX = -1; + factorY = -1; + } + result = new Aspect(factorX, factorY); + } + return result; + } + +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/ConverterDirection.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/ConverterDirection.java new file mode 100644 index 00000000..d060cd1d --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/ConverterDirection.java @@ -0,0 +1,24 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.model; + +public enum ConverterDirection { + FILES_TO_IMAGE, IMAGE_TO_FILES +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/ConverterMode.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/ConverterMode.java new file mode 100644 index 00000000..347dc690 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/ConverterMode.java @@ -0,0 +1,24 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.model; + +public enum ConverterMode { + NONE, RAW_FILE, RAW_IMAGE, CNV +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/GraphicsPropertiesSerializer.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/GraphicsPropertiesSerializer.java new file mode 100644 index 00000000..5abf5e05 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/GraphicsPropertiesSerializer.java @@ -0,0 +1,151 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.model; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.base.common.PropertiesSerializer; + +public final class GraphicsPropertiesSerializer extends PropertiesSerializer { + + /** + * Creation is public. + */ + public GraphicsPropertiesSerializer() { + + + } + + public final RGB readRGB(String key, RGB defaultValue) { + + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + if (defaultValue == null) { + throw new IllegalArgumentException( + "Parameter 'defaultValue' must not be null."); + } + + RGB result; + + int red = readInteger(key + ".red", 0); + int green = readInteger(key + ".green", 0); + int blue = readInteger(key + ".blue", 0); + + result = new RGB(red, green, blue); + + return result; + } + + public final void writeRGB(String key, RGB value) { + + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + + writeInteger(key + ".red", value.red); + writeInteger(key + ".green", value.green); + writeInteger(key + ".blue", value.blue); + } + + public final Aspect readXYFactor(String key, Aspect defaultValue) { + + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + if (defaultValue == null) { + throw new IllegalArgumentException( + "Parameter 'defaultValue' must not be null."); + } + Aspect result; + + int factorX = readInteger(key + ".factorX", 1); + int factorY = readInteger(key + ".factorY", 1); + + result = new Aspect(factorX, factorY); + return result; + } + + public final void writeAspect(String key, Aspect value) { + + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + setProperty(key + ".factorX", String.valueOf(value.getFactorX())); + setProperty(key + ".factorY", String.valueOf(value.getFactorY())); + } + + + public final RGB[] readRGBArray(String key, RGB[] defaultValue) { + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + if (defaultValue == null) { + throw new IllegalArgumentException( + "Parameter 'defaultValue' must not be null."); + } + RGB[] result; + + if (properties.containsKey(key)) { + int length = readInteger(key, 0); + result = new RGB[length]; + String prefix = key + "."; + RGB black = new RGB(0, 0, 0); + for (int i = 0; i < length; i++) { + String valueKey = prefix + i; + result[i] = readRGB(valueKey, black); + } + } else { + result = defaultValue; + } + return result; + + } + + public final void writeRGBArray(String key, RGB[] value) { + if (key == null) { + throw new IllegalArgumentException( + "Parameter 'key' must not be null."); + } + if (value == null) { + throw new IllegalArgumentException( + "Parameter 'value' must not be null."); + } + writeInteger(key, value.length); + String prefix = key + "."; + for (int i = 0; i < value.length; i++) { + String valueKey = prefix + i; + writeRGB(valueKey, value[i]); + } + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/Palette.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/Palette.java new file mode 100644 index 00000000..af89456e --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/Palette.java @@ -0,0 +1,24 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.model; + +public enum Palette { + TRUE_COLOR, HIRES_1, HIRES_2, HIRES_MANUAL, MULTI_1, MULTI_2, MULTI_3, MULTI_4, MULTI_5, MULTI_6, MULTI_MANUAL, GTIA_GREY_1, GTIA_GREY_2, GTIA_GREY_MANUAL +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/PaletteType.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/PaletteType.java new file mode 100644 index 00000000..980826bb --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/PaletteType.java @@ -0,0 +1,25 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.model; + + +public enum PaletteType { + TRUE_COLOR, ATARI_DEFAULT, ATARI_REAL, ATARI_XFORMER, C64_NORMAL, C64_PAL, +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/PaletteUtility.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/PaletteUtility.java new file mode 100644 index 00000000..6238642c --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/PaletteUtility.java @@ -0,0 +1,156 @@ +/** +* Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.model; + +import org.eclipse.swt.graphics.RGB; + +import com.wudsn.ide.base.common.HexUtility; + +public final class PaletteUtility { + + public static final RGB BLACK = new RGB(0, 0, 0); + public static final RGB GREY1 = new RGB(85, 85, 85); + public static final RGB GREY2 = new RGB(170, 170, 170); + public static final RGB WHITE = new RGB(255, 255, 255); + + /** + * Creation is private. + */ + private PaletteUtility() { + } + + public static RGB[] getPaletteColors(PaletteType paletteType, + Palette palette, RGB[] manualPaletteColors) { + if (paletteType == null) { + throw new IllegalArgumentException( + "Parameter 'paletteType' must not be null."); + } + if (palette == null) { + throw new IllegalArgumentException( + "Parameter 'palette' must not be null."); + } + + RGB[] result; + + switch (palette) { + case TRUE_COLOR: + result = new RGB[0]; + break; + + case HIRES_1: + result = new RGB[] { BLACK, WHITE }; + break; + case HIRES_2: + result = new RGB[] { WHITE, BLACK }; + break; + + case HIRES_MANUAL: + result = getPaletteColorsCopy(manualPaletteColors, 2); + break; + + case MULTI_1: + result = new RGB[] { BLACK, GREY1, GREY2, WHITE }; + break; + case MULTI_2: + result = new RGB[] { BLACK, GREY1, WHITE, GREY2 }; + break; + case MULTI_3: + result = new RGB[] { BLACK, GREY2, GREY1, WHITE }; + break; + case MULTI_4: + result = new RGB[] { BLACK, GREY2, WHITE, GREY1 }; + break; + case MULTI_5: + result = new RGB[] { BLACK, WHITE, GREY1, GREY2 }; + break; + case MULTI_6: + result = new RGB[] { BLACK, WHITE, GREY2, GREY1 }; + break; + case MULTI_MANUAL: + result = getPaletteColorsCopy(manualPaletteColors, + manualPaletteColors.length); + break; + + case GTIA_GREY_1: + result = new RGB[16]; + for (int i = 0; i < 16; i++) { + int c = 0x11 * i; + result[i] = new RGB(c, c, c); + } + break; + case GTIA_GREY_2: + result = new RGB[16]; + for (int i = 0; i < 16; i++) { + int c = 255 - 0x11 * i; + result[i] = new RGB(c, c, c); + } + break; + case GTIA_GREY_MANUAL: + result = getPaletteColorsCopy(manualPaletteColors, 16); + break; + + default: + throw new IllegalStateException("Unknown palette '" + palette + + "'."); + } + return result; + } + + /** + * Gets an array of colors with the given size based on the current palette + * colors. + * + * @param paletteColors + * The original palette colors or null. + * @param size + * The size of the palette, a positive integer. + * @return The new array with palette colors of the given size. + * + */ + private static RGB[] getPaletteColorsCopy(RGB[] paletteColors, int size) { + + if (size < 1) { + throw new IllegalArgumentException( + "Parameter 'size' must be positive. Specified value is " + + size + "."); + } + + RGB[] result; + result = new RGB[size]; + for (int i = 0; i < size; i++) { + if (paletteColors != null && i < paletteColors.length) { + result[i] = paletteColors[i]; + } else { + result[i] = new RGB(0, 0, 0); + } + } + return result; + } + + public static String getPaletteColorText(RGB rgb) { + if (rgb == null) { + throw new IllegalArgumentException( + "Parameter 'rgb' must not be null."); + } + return HexUtility.getByteValueHexString(rgb.red) + + HexUtility.getByteValueHexString(rgb.green) + + HexUtility.getByteValueHexString(rgb.blue); + } +} diff --git a/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/RBGUtility.java b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/RBGUtility.java new file mode 100644 index 00000000..dc300180 --- /dev/null +++ b/com.wudsn.ide.gfx/src/com/wudsn/ide/gfx/model/RBGUtility.java @@ -0,0 +1,63 @@ +/** + * Copyright (C) 2009 - 2014 Peter Dell + * + * This file is part of WUDSN IDE. + * + * WUDSN IDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * WUDSN IDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WUDSN IDE. If not, see . + */ + +package com.wudsn.ide.gfx.model; + +import org.eclipse.swt.graphics.RGB; + +public final class RBGUtility { + + /** + * Creation is private. + */ + private RBGUtility() { + } + + /** + * Combines to RBG color values to a mixed color value. + * + * @param color1 + * The first color, not null. + * @param color2 + * The second color, not null. + * @return The mixed color, not null. + */ + public static RGB combineRGB(RGB color1, RGB color2) { + return new RGB((color1.red + color2.red) >>> 1, (color1.green + color2.green) >>> 1, + (color1.blue + color2.blue) >>> 1); + } + + /** + * Combines to RBG color values to a mixed color value. + * + * @param color1 + * The first color. + * @param color2 + * The second color. + * @return The mixed color. + */ + public static int combineRGBColor(int color1, int color2) { + int r = (((color1 >>> 16) & 0xff) + ((color2 >>> 16) & 0xff)) >>> 1; + int g = (((color1 >>> 8) & 0xff) + ((color2 >>> 8) & 0xff)) >>> 1; + int b = (((color1 >>> 0) & 0xff) + ((color2 >>> 0) & 0xff)) >>> 1; + return r << 16 | g << 8 | b; + + } + +}