vcl/inc/filter/TgaReader.hxx                      |    7 +++++--
 vcl/qa/cppunit/graphicfilter/filters-tga-test.cxx |    6 +++---
 vcl/source/filter/graphicfilter.cxx               |    6 +++++-
 vcl/source/filter/itga/itga.cxx                   |   14 ++++++--------
 vcl/workben/fftester.cxx                          |    4 ++--
 vcl/workben/tgafuzzer.cxx                         |    4 ++--
 6 files changed, 23 insertions(+), 18 deletions(-)

New commits:
commit 557348bda5d9ff68ea33deb8ac1d53d6a893b40c
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Mon Apr 21 14:31:12 2025 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Tue Apr 29 02:12:19 2025 +0200

    vcl: convert TGA to use ImportOutput
    
    Change-Id: I4e30ac030863e987b9e817d068ed77e142b2fcbb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184399
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/vcl/inc/filter/TgaReader.hxx b/vcl/inc/filter/TgaReader.hxx
index 34f75648717c..8090e87e1c43 100644
--- a/vcl/inc/filter/TgaReader.hxx
+++ b/vcl/inc/filter/TgaReader.hxx
@@ -19,8 +19,11 @@
 
 #pragma once
 
-#include <vcl/graph.hxx>
+#include <vcl/dllapi.h>
 
-VCL_DLLPUBLIC bool ImportTgaGraphic(SvStream& rStream, Graphic& rGraphic);
+class SvStream;
+class ImportOutput;
+
+VCL_DLLPUBLIC bool ImportTgaGraphic(SvStream& rStream, ImportOutput& 
rImportOutput);
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/qa/cppunit/graphicfilter/filters-tga-test.cxx 
b/vcl/qa/cppunit/graphicfilter/filters-tga-test.cxx
index d0611aa56ce9..9b00ab314e01 100644
--- a/vcl/qa/cppunit/graphicfilter/filters-tga-test.cxx
+++ b/vcl/qa/cppunit/graphicfilter/filters-tga-test.cxx
@@ -11,7 +11,7 @@
 #include <test/bootstrapfixture.hxx>
 #include <vcl/FilterConfigItem.hxx>
 #include <tools/stream.hxx>
-#include <vcl/graph.hxx>
+#include <vcl/filter/ImportOutput.hxx>
 #include <filter/TgaReader.hxx>
 
 using namespace ::com::sun::star;
@@ -44,8 +44,8 @@ bool TgaFilterTest::load(const OUString &,
     SfxFilterFlags, SotClipboardFormatId, unsigned int)
 {
     SvFileStream aFileStream(rURL, StreamMode::READ);
-    Graphic aGraphic;
-    return ImportTgaGraphic(aFileStream, aGraphic);
+    ImportOutput aImportOutput;
+    return ImportTgaGraphic(aFileStream, aImportOutput);
 }
 
 void TgaFilterTest::testCVEs()
diff --git a/vcl/source/filter/graphicfilter.cxx 
b/vcl/source/filter/graphicfilter.cxx
index 50ab252fa5fd..6645e3d30011 100644
--- a/vcl/source/filter/graphicfilter.cxx
+++ b/vcl/source/filter/graphicfilter.cxx
@@ -1189,8 +1189,12 @@ ErrCode GraphicFilter::readBMP(SvStream & rStream, 
Graphic & rGraphic, GfxLinkTy
 
 ErrCode GraphicFilter::readTGA(SvStream & rStream, Graphic & rGraphic)
 {
-    if (ImportTgaGraphic(rStream, rGraphic))
+    ImportOutput aImportOutput;
+    if (ImportTgaGraphic(rStream, aImportOutput))
+    {
+        rGraphic = Graphic(*aImportOutput.moBitmap);
         return ERRCODE_NONE;
+    }
     else
         return ERRCODE_GRFILTER_FILTERERROR;
 }
diff --git a/vcl/source/filter/itga/itga.cxx b/vcl/source/filter/itga/itga.cxx
index 6b3b3037fe24..e73a04f1ab4d 100644
--- a/vcl/source/filter/itga/itga.cxx
+++ b/vcl/source/filter/itga/itga.cxx
@@ -17,8 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-
-#include <vcl/graph.hxx>
+#include <vcl/filter/ImportOutput.hxx>
 #include <vcl/BitmapTools.hxx>
 #include <tools/stream.hxx>
 #include <memory>
@@ -110,7 +109,7 @@ private:
 
 public:
     explicit TGAReader(SvStream &rTGA);
-    bool                ReadTGA(Graphic &rGraphic);
+    bool ReadTGA(ImportOutput& rImportOutput);
 };
 
 }
@@ -127,7 +126,7 @@ TGAReader::TGAReader(SvStream &rTGA)
 {
 }
 
-bool TGAReader::ReadTGA(Graphic & rGraphic)
+bool TGAReader::ReadTGA(ImportOutput& rImportOutput)
 {
     if ( m_rTGA.GetError() )
         return false;
@@ -155,7 +154,7 @@ bool TGAReader::ReadTGA(Graphic & rGraphic)
                 mbStatus = ImplReadBody();
 
             if ( mbStatus )
-                rGraphic = vcl::bitmap::CreateFromData(std::move(*mpBitmap));
+                rImportOutput.moBitmap = 
vcl::bitmap::CreateFromData(std::move(*mpBitmap));
         }
     }
     return mbStatus;
@@ -780,11 +779,10 @@ bool TGAReader::ImplReadPalette()
 
 //================== GraphicImport - the exported function ================
 
-bool ImportTgaGraphic(SvStream & rStream, Graphic & rGraphic)
+bool ImportTgaGraphic(SvStream& rStream, ImportOutput& rImportOutput)
 {
     TGAReader aTGAReader(rStream);
-
-    return aTGAReader.ReadTGA(rGraphic);
+    return aTGAReader.ReadTGA(rImportOutput);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/workben/fftester.cxx b/vcl/workben/fftester.cxx
index 7a42a51fbcbe..faaf91f465a0 100644
--- a/vcl/workben/fftester.cxx
+++ b/vcl/workben/fftester.cxx
@@ -238,9 +238,9 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
         }
         else if (strcmp(argv[2], "tga") == 0)
         {
-            Graphic aGraphic;
+            ImportOutput aImportOutput;
             SvFileStream aFileStream(out, StreamMode::READ);
-            ret = static_cast<int>(ImportTgaGraphic(aFileStream, aGraphic));
+            ret = static_cast<int>(ImportTgaGraphic(aFileStream, 
aImportOutput));
         }
         else if (strcmp(argv[2], "tif") == 0)
         {
diff --git a/vcl/workben/tgafuzzer.cxx b/vcl/workben/tgafuzzer.cxx
index 32b7fcb3d578..3ad13c2de58f 100644
--- a/vcl/workben/tgafuzzer.cxx
+++ b/vcl/workben/tgafuzzer.cxx
@@ -49,8 +49,8 @@ extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv)
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
 {
     SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
-    Graphic aGraphic;
-    (void)ImportTgaGraphic(aStream, aGraphic);
+    ImportOutput aImportOutput;
+    (void)ImportTgaGraphic(aStream, aImportOutput);
     return 0;
 }
 

Reply via email to