Refactoring

This commit is contained in:
Oleg Korshul
2022-08-05 15:05:59 +03:00
parent e370c81b3b
commit e05b881856
7 changed files with 87 additions and 255 deletions

View File

@ -71,11 +71,26 @@ unsigned char* Raster_GetRGBA(CBgraFrame* p)
int main()
{
std::wstring sFilePath = L"test.jpg";
CBgraFrame oFrame;
if (oFrame.OpenFile(sFilePath))
if (false)
{
return 0;
std::wstring sFilePath = L"D:/1.jpg";
CBgraFrame oFrame;
if (oFrame.OpenFile(sFilePath))
{
oFrame.SaveFile(L"D:/1.png", 4);
return 0;
}
}
if (true)
{
std::wstring sFilePath = L"D:/1.wmf";
MetaFile::CMetaFile oFrame(NULL);
if (oFrame.LoadFromFile(sFilePath.c_str()))
{
oFrame.ConvertToSvg(L"D:/1.svg");
return 0;
}
}
return 1;
}

View File

@ -10,6 +10,7 @@
#include <malloc.h>
#include "../../../../../raster/BgraFrame.h"
#include "../../../../../raster/Metafile/MetaFile.h"
#ifdef __cplusplus
extern "C" {

View File

@ -18,144 +18,82 @@ DEFINES -= UNICODE _UNICODE
#DEFINES += BUILDING_WASM_MODULE
#CONFIG += disable_fonts_engine
#CONFIG += disable_graphics_renderer
#CONFIG += disable_metafile_svg
#CONFIG += disable_metafile_wmf_emf
#CONFIG += disable_metafile_svm
#CONFIG += disable_raster
include(../../../raster.pri)
disable_fonts_engine:CONFIG += disable_graphics_renderer
#CONFIG += graphics_disable_metafile
graphics_disable_metafile {
DEFINES += GRAPHICS_DISABLE_METAFILE
} else {
CONFIG += metafile_disable_svg
CONFIG += metafile_disable_svm
CONFIG += metafile_disable_wmf_emf_xml
include(../../../metafile.pri)
!disable_raster {
include(./raster_module.pri)
!metafile_disable_svg {
CONFIG += enable_libxml
}
!metafile_disable_svm {
CONFIG += enable_libxml
SOURCES += $$CORE_ROOT_DIR/UnicodeConverter/UnicodeConverter_internal_empty.cpp
}
enable_libxml:include($$CORE_ROOT_DIR/DesktopEditor/xml/build/qt/libxml2.pri)
!metafile_disable_wmf_emf {
SOURCES += $$CORE_ROOT_DIR/DesktopEditor/xml/src/xmlwriter.cpp
}
}
!disable_fonts_engine {
include(./fonts_module.pri)
CONFIG += graphics_disable_fonts
graphics_disable_fonts {
SOURCES += $$PWD/pro_Fonts_empty.cpp
} else {
include(../../../fontengine.pri)
}
LIB_GRAPHICS_PRI_PATH = $$PWD/../../../../..
GRAPHICS_PATH = $$CORE_ROOT_DIR/DesktopEditor/graphics
GRAPHICS_AGG_PATH = $$CORE_ROOT_DIR/DesktopEditor/agg-2.4
GRAPHICS_COMMON = $$CORE_ROOT_DIR/DesktopEditor/common
# matrix
HEADERS += \
$$GRAPHICS_PATH/Matrix_private.h \
$$GRAPHICS_PATH/Matrix.h
SOURCES += \
$$GRAPHICS_PATH/Matrix.cpp
SOURCES += \
$$GRAPHICS_AGG_PATH/src/agg_trans_affine.cpp
graphics_enable_path {
# paths
HEADERS += \
$$GRAPHICS_PATH/GraphicsPath_private.h \
$$GRAPHICS_PATH/GraphicsPath.h
SOURCES += \
$$GRAPHICS_PATH/GraphicsPath.cpp
SOURCES += \
$$GRAPHICS_AGG_PATH/src/agg_arc.cpp \
$$GRAPHICS_AGG_PATH/src/agg_bezier_arc.cpp \
$$GRAPHICS_AGG_PATH/src/agg_curves.cpp \
$$GRAPHICS_AGG_PATH/src/agg_bspline.cpp \
$$GRAPHICS_AGG_PATH/src/agg_vcgen_bspline.cpp \
$$GRAPHICS_AGG_PATH/src/agg_vcgen_stroke.cpp \
$$GRAPHICS_AGG_PATH/src/agg_vcgen_contour.cpp
}
INCLUDEPATH += \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/include
include($$CORE_ROOT_DIR/DesktopEditor/xml/build/qt/libxml2.pri)
$$GRAPHICS_AGG_PATH/include
SOURCES += \
$$CORE_ROOT_DIR/DesktopEditor/common/Directory.cpp \
$$CORE_ROOT_DIR/DesktopEditor/common/Base64.cpp \
$$CORE_ROOT_DIR/DesktopEditor/common/StringBuilder.cpp \
$$CORE_ROOT_DIR/DesktopEditor/common/StringExt.cpp \
$$CORE_ROOT_DIR/DesktopEditor/common/Path.cpp
$$GRAPHICS_COMMON/File.cpp \
$$GRAPHICS_COMMON/Base64.cpp \
$$GRAPHICS_COMMON/StringBuilder.cpp \
$$GRAPHICS_COMMON/StringExt.cpp
SOURCES += \
$$LIB_GRAPHICS_PRI_PATH/graphics/Matrix.cpp \
$$LIB_GRAPHICS_PRI_PATH/graphics/GraphicsPath.cpp
HEADERS += \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/CXmlOutput.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/CPathConverter.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/IOutputDevice.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/MetaFile.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/MetaFileClip.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/MetaFileObjects.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/MetaFileRenderer.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/MetaFileTypes.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/MetaFileUtils.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretator.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorArray.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorBase.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorRender.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorSvg.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorXml.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfParser/CEmfParser.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfParser/CEmfParserBase.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfParser/CEmfPlusParser.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfParser/CEmfxParser.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfInterpretator/CWmfInterpretatorSvg.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfParser/CWmfParser.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfParser/CWmfParserBase.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfInterpretator/CWmfInterpretatorBase.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfInterpretator/CWmfInterpretatorRender.h \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfInterpretator/CWmfInterpretator.h
SOURCES += \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/CXmlOutput.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/CPathConverter.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/MetaFileTypes.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Common/MetaFileUtils.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretator.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorArray.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorRender.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorSvg.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfInterpretator/CEmfInterpretatorXml.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfParser/CEmfParser.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfParser/CEmfParserBase.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfParser/CEmfPlusParser.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfParser/CEmfxParser.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfInterpretator/CWmfInterpretatorSvg.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfParser/CWmfParser.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfParser/CWmfParserBase.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfInterpretator/CWmfInterpretatorRender.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfInterpretator/CWmfInterpretator.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/MetaFile.cpp \
\
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfClip.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfObjects.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfPath.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfPlayer.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Emf/EmfFile.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfClip.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfObjects.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/Wmf/WmfPlayer.cpp \
\
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/StarView/SvmClip.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/StarView/SvmFile.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/StarView/SvmObjects.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/StarView/SvmPlayer.cpp \
\
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/svg/SVGFramework.cpp \
$$LIB_GRAPHICS_PRI_PATH/raster/Metafile/svg/SVGTransformer.cpp
SOURCES += \
$$CORE_ROOT_DIR/UnicodeConverter/UnicodeConverter_internal_empty.cpp
SOURCES += \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_arc.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_bezier_arc.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_arrowhead.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/ctrl/agg_cbox_ctrl.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_curves.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_gsv_text.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_image_filters.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_line_aa_basics.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_line_profile_aa.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_rounded_rect.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_sqrt_tables.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_trans_affine.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_bspline.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_vcgen_bspline.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_vcgen_contour.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_vcgen_dash.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_vcgen_markers_term.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_vcgen_smooth_poly1.cpp \
$$LIB_GRAPHICS_PRI_PATH/agg-2.4/src/agg_vcgen_stroke.cpp
SOURCES += \
$$CORE_ROOT_DIR/OfficeUtils/src/OfficeUtils.cpp \
$$CORE_ROOT_DIR/OfficeUtils/src/ZipBuffer.cpp \
$$CORE_ROOT_DIR/OfficeUtils/src/ZipUtilsCP.cpp
SOURCES += \
../../../pro_base.cpp \
../../../pro_Fonts_empty.cpp \
../../../pro_Graphics_empty.cpp
SOURCES += $$PWD/pro_Graphics_empty.cpp
SOURCES += ./raster.cpp
HEADERS += ./raster.h
core_windows {
LIBS += -lRpcrt4
LIBS += -lShell32
}

View File

@ -1,86 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "Fonts.h"
namespace NSFonts
{
namespace NSFontPath
{
IFontPath* Create() { return NULL; }
}
}
namespace NSFonts
{
namespace NSStream
{
IFontStream* Create() { return NULL; }
}
namespace NSApplicationFontStream
{
IApplicationFontStreams* Create() { return NULL; }
}
}
namespace NSFonts
{
namespace NSFontFile
{
IFontFile* Create() { return NULL; }
}
}
namespace NSFonts
{
namespace NSFontCache
{
IFontsCache* Create() { return NULL; }
}
}
namespace NSFonts
{
namespace NSFontManager
{
IFontManager* Create() { return NULL; }
}
}
namespace NSFonts
{
namespace NSApplication
{
IApplicationFonts* Create() { return NULL; }
}
}

View File

@ -1,38 +0,0 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "Graphics.h"
namespace NSGraphics
{
IGraphicsRenderer* Create() { return NULL; }
}

View File

@ -4,6 +4,7 @@ DEFINES -= UNICODE
DEFINES -= _UNICODE
DEFINES += \
_QT \
EXCLUDE_JPG_SUPPORT \
MNG_SUPPORT_DISPLAY \
MNG_SUPPORT_READ \