Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_xcf_import.cpp File Reference
#include "kis_xcf_import.h"
#include <ctype.h>
#include <QApplication>
#include <QFile>
#include <qendian.h>
#include <kpluginfactory.h>
#include <KoColorSpace.h>
#include <KoColorSpaceRegistry.h>
#include <KoColorSpaceTraits.h>
#include <KoCompositeOpRegistry.h>
#include <kis_debug.h>
#include <KisDocument.h>
#include <kis_group_layer.h>
#include <kis_image.h>
#include <kis_paint_device.h>
#include <kis_transaction.h>
#include <kis_paint_layer.h>
#include <kis_transparency_mask.h>
#include "kis_iterator_ng.h"
#include "kis_types.h"
#include <KoColorModelStandardIds.h>
#include "xcftools.h"
#include "pixels.h"
#include "kis_xcf_import.moc"

Go to the source code of this file.

Classes

struct  Layer
 

Macros

#define GET_ALPHA(x)   (x >> ALPHA_SHIFT)
 
#define GET_BLUE(x)   (x >> BLUE_SHIFT)
 
#define GET_GREEN(x)   (x >> GREEN_SHIFT)
 
#define GET_RED(x)   (x >> RED_SHIFT)
 

Functions

void addLayers (const QVector< Layer > &layers, KisImageSP image, int depth)
 
KisGroupLayerSP findGroup (const QVector< Layer > &layers, const Layer &layer, int i)
 
QString layerModeG2K (GimpLayerModeEffects mode)
 

Macro Definition Documentation

◆ GET_ALPHA

#define GET_ALPHA ( x)    (x >> ALPHA_SHIFT)

Definition at line 40 of file kis_xcf_import.cpp.

◆ GET_BLUE

#define GET_BLUE ( x)    (x >> BLUE_SHIFT)

Definition at line 39 of file kis_xcf_import.cpp.

◆ GET_GREEN

#define GET_GREEN ( x)    (x >> GREEN_SHIFT)

Definition at line 38 of file kis_xcf_import.cpp.

◆ GET_RED

#define GET_RED ( x)    (x >> RED_SHIFT)

Definition at line 37 of file kis_xcf_import.cpp.

Function Documentation

◆ addLayers()

void addLayers ( const QVector< Layer > & layers,
KisImageSP image,
int depth )

Definition at line 118 of file kis_xcf_import.cpp.

119{
120 for(int i = 0; i < layers.size(); i++) {
121 const Layer &layer = layers[i];
122 if (layer.depth == depth) {
123 KisGroupLayerSP group = (depth == 0 ? image->rootLayer() : findGroup(layers, layer, i));
124 image->addNode(layer.layer, group);
125 if (layer.mask) {
126 image->addNode(layer.mask, layer.layer);
127 }
128 }
129 }
130}
KisGroupLayerSP rootLayer() const
KisGroupLayerSP findGroup(const QVector< Layer > &layers, const Layer &layer, int i)
int depth(typename Forest< T >::const_child_iterator beginIt, typename Forest< T >::const_child_iterator endIt)
Definition KisForest.h:1213
bool addNode(KisNodeSP node, KisNodeSP parent=KisNodeSP(), KisNodeAdditionFlags flags=KisNodeAdditionFlag::None)
KisMaskSP mask
KisLayerSP layer

References KisNodeFacade::addNode(), Layer::depth, findGroup(), Layer::layer, Layer::mask, and KisImage::rootLayer().

◆ findGroup()

KisGroupLayerSP findGroup ( const QVector< Layer > & layers,
const Layer & layer,
int i )

Definition at line 107 of file kis_xcf_import.cpp.

108{
109 for (; i < layers.size(); ++i) {
110 KisGroupLayerSP group = dynamic_cast<KisGroupLayer*>(const_cast<KisLayer*>(layers[i].layer.data()));
111 if (group && (layers[i].depth == layer.depth -1)) {
112 return group;
113 }
114 }
115 return 0;
116}

References Layer::depth.

◆ layerModeG2K()

QString layerModeG2K ( GimpLayerModeEffects mode)

Definition at line 43 of file kis_xcf_import.cpp.

44{
45 switch (mode) {
47 return COMPOSITE_OVER;
49 return COMPOSITE_DISSOLVE;
51 return COMPOSITE_MULT;
53 return COMPOSITE_SCREEN;
56 return COMPOSITE_OVERLAY;
58 return COMPOSITE_DIFF;
60 return COMPOSITE_ADD;
62 return COMPOSITE_SUBTRACT;
64 return COMPOSITE_DARKEN;
66 return COMPOSITE_LIGHTEN;
67 case GIMP_HUE_MODE:
68 return COMPOSITE_HUE_HSL;
71 case GIMP_COLOR_MODE:
73 case GIMP_VALUE_MODE:
74 return COMPOSITE_VALUE;
76 return COMPOSITE_DIVIDE;
77 case GIMP_DODGE_MODE:
78 return COMPOSITE_DODGE;
79 case GIMP_BURN_MODE:
80 return COMPOSITE_BURN;
81 case GIMP_ERASE_MODE:
82 return COMPOSITE_ERASE;
84 return COMPOSITE_COPY;
95 break;
96 }
97 dbgFile << "Unknown mode: " << mode;
98 return COMPOSITE_OVER;
99}
const QString COMPOSITE_OVER
const QString COMPOSITE_COPY
const QString COMPOSITE_DARKEN
const QString COMPOSITE_OVERLAY
const QString COMPOSITE_DIVIDE
const QString COMPOSITE_DODGE
const QString COMPOSITE_ADD
const QString COMPOSITE_LIGHTEN
const QString COMPOSITE_VALUE
const QString COMPOSITE_GRAIN_MERGE
const QString COMPOSITE_MULT
const QString COMPOSITE_HUE_HSL
const QString COMPOSITE_HARD_LIGHT
const QString COMPOSITE_SCREEN
const QString COMPOSITE_DIFF
const QString COMPOSITE_ERASE
const QString COMPOSITE_SUBTRACT
const QString COMPOSITE_DISSOLVE
const QString COMPOSITE_BURN
const QString COMPOSITE_COLOR_HSL
const QString COMPOSITE_GRAIN_EXTRACT
const QString COMPOSITE_SATURATION_HSV
@ GIMP_REPLACE_MODE
Definition enums.h:33
@ GIMP_NORMAL_MODE
Definition enums.h:9
@ GIMP_DODGE_MODE
Definition enums.h:25
@ GIMP_COLOR_ERASE_MODE
Definition enums.h:31
@ GIMP_HARDLIGHT_MODE
Definition enums.h:27
@ GIMP_MULTIPLY_MODE
Definition enums.h:12
@ GIMP_DIVIDE_MODE
Definition enums.h:24
@ GIMP_DISSOLVE_MODE
Definition enums.h:10
@ GIMP_SCREEN_MODE
Definition enums.h:13
@ GIMP_GRAIN_MERGE_MODE
Definition enums.h:30
@ GIMP_SUBTRACT_MODE
Definition enums.h:17
@ GIMP_ANTI_ERASE_MODE
Definition enums.h:34
@ GIMP_VALUE_MODE
Definition enums.h:23
@ GIMP_DARKEN_ONLY_MODE
Definition enums.h:18
@ GIMP_COLOR_MODE
Definition enums.h:22
@ GIMP_NORMAL_NOPARTIAL_MODE
Definition enums.h:35
@ GIMP_ERASE_MODE
Definition enums.h:32
@ GIMP_LIGHTEN_ONLY_MODE
Definition enums.h:19
@ GIMP_SOFTLIGHT_MODE
Definition enums.h:28
@ GIMP_ADDITION_MODE
Definition enums.h:16
@ GIMP_OVERLAY_MODE
Definition enums.h:14
@ GIMP_BEHIND_MODE
Definition enums.h:11
@ GIMP_HUE_MODE
Definition enums.h:20
@ GIMP_SATURATION_MODE
Definition enums.h:21
@ GIMP_DIFFERENCE_MODE
Definition enums.h:15
@ GIMP_BURN_MODE
Definition enums.h:26
@ GIMP_GRAIN_EXTRACT_MODE
Definition enums.h:29
#define dbgFile
Definition kis_debug.h:53

References COMPOSITE_ADD, COMPOSITE_BURN, COMPOSITE_COLOR_HSL, COMPOSITE_COPY, COMPOSITE_DARKEN, COMPOSITE_DIFF, COMPOSITE_DISSOLVE, COMPOSITE_DIVIDE, COMPOSITE_DODGE, COMPOSITE_ERASE, COMPOSITE_GRAIN_EXTRACT, COMPOSITE_GRAIN_MERGE, COMPOSITE_HARD_LIGHT, COMPOSITE_HUE_HSL, COMPOSITE_LIGHTEN, COMPOSITE_MULT, COMPOSITE_OVER, COMPOSITE_OVERLAY, COMPOSITE_SATURATION_HSV, COMPOSITE_SCREEN, COMPOSITE_SUBTRACT, COMPOSITE_VALUE, dbgFile, GIMP_ADDITION_MODE, GIMP_ANTI_ERASE_MODE, GIMP_BEHIND_MODE, GIMP_BURN_MODE, GIMP_COLOR_ERASE_MODE, GIMP_COLOR_MODE, GIMP_DARKEN_ONLY_MODE, GIMP_DIFFERENCE_MODE, GIMP_DISSOLVE_MODE, GIMP_DIVIDE_MODE, GIMP_DODGE_MODE, GIMP_ERASE_MODE, GIMP_GRAIN_EXTRACT_MODE, GIMP_GRAIN_MERGE_MODE, GIMP_HARDLIGHT_MODE, GIMP_HUE_MODE, GIMP_LIGHTEN_ONLY_MODE, GIMP_MULTIPLY_MODE, GIMP_NORMAL_MODE, GIMP_NORMAL_NOPARTIAL_MODE, GIMP_OVERLAY_MODE, GIMP_REPLACE_MODE, GIMP_SATURATION_MODE, GIMP_SCREEN_MODE, GIMP_SOFTLIGHT_MODE, GIMP_SUBTRACT_MODE, and GIMP_VALUE_MODE.