Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Office
Calligra
Commits
414d004a
Commit
414d004a
authored
Dec 18, 2013
by
Halla Rempt
Browse files
Do not convert empty paint devices, but convert their default pixel
BUG:328895
parent
0e5a207a
Changes
1
Hide whitespace changes
Inline
Side-by-side
krita/image/kis_paint_device.cc
View file @
414d004a
...
...
@@ -589,42 +589,49 @@ KUndo2Command* KisPaintDevice::convertTo(const KoColorSpace * dstColorSpace, KoC
qint32
x
,
y
,
w
,
h
;
QRect
rc
=
exactBounds
();
x
=
rc
.
x
();
y
=
rc
.
y
();
w
=
rc
.
width
();
h
=
rc
.
height
();
if
(
w
==
0
||
h
==
0
)
{
quint8
*
defPixel
=
dstColorSpace
->
allocPixelBuffer
(
1
,
true
);
m_d
->
colorSpace
->
convertPixelsTo
(
defaultPixel
(),
defPixel
,
dstColorSpace
,
1
,
renderingIntent
,
conversionFlags
);
setDefaultPixel
(
defPixel
);
delete
defPixel
;
}
else
{
KisRandomConstAccessorSP
srcIt
=
createRandomConstAccessorNG
(
x
,
y
);
KisRandomAccessorSP
dstIt
=
dst
.
createRandomAccessorNG
(
x
,
y
);
KisRandomConstAccessorSP
srcIt
=
createRandomConstAccessorNG
(
x
,
y
);
KisRandomAccessorSP
dstIt
=
dst
.
createRandomAccessorNG
(
x
,
y
);
for
(
qint32
row
=
y
;
row
<
y
+
h
;
++
row
)
{
for
(
qint32
row
=
y
;
row
<
y
+
h
;
++
row
)
{
qint32
column
=
x
;
qint32
columnsRemaining
=
w
;
qint32
column
=
x
;
qint32
columnsRemaining
=
w
;
while
(
columnsRemaining
>
0
)
{
while
(
columnsRemaining
>
0
)
{
qint32
numContiguousDstColumns
=
dstIt
->
numContiguousColumns
(
column
);
qint32
numContiguousSrcColumns
=
srcIt
->
numContiguousColumns
(
column
);
qint32
numContiguousDstColumns
=
dstIt
->
numContiguousColumns
(
column
);
qint32
numContiguousSrcColumns
=
srcIt
->
numContiguousColumns
(
column
);
qint32
columns
=
qMin
(
numContiguousDstColumns
,
numContiguous
Src
Columns
);
columns
=
qMin
(
columns
,
columnsRemaining
);
qint32
columns
=
qMin
(
numContiguousDstC
olumn
s
,
numContiguousSrcColumns
);
columns
=
qMin
(
column
s
,
columnsRemaining
);
srcIt
->
moveTo
(
c
olumn
,
row
);
dstIt
->
moveTo
(
column
,
row
);
srcIt
->
moveTo
(
column
,
row
);
dstIt
->
moveTo
(
column
,
row
);
const
quint8
*
srcData
=
srcIt
->
rawDataConst
(
);
quint8
*
dstData
=
dstIt
->
rawData
(
);
const
quint8
*
srcData
=
srcIt
->
rawDataConst
();
quint8
*
dstData
=
dstIt
->
rawData
();
m_d
->
colorSpace
->
convertPixelsTo
(
srcData
,
dstData
,
dstColorSpace
,
columns
,
renderingIntent
,
conversionFlags
);
m_d
->
colorSpace
->
convertPixelsTo
(
srcData
,
dstData
,
dstColorSpace
,
columns
,
renderingIntent
,
conversionFlags
);
column
+=
columns
;
columnsRemaining
-=
columns
;
}
column
+=
columns
;
columnsRemaining
-=
columns
;
}
}
KisDataManagerSP
oldData
=
m_d
->
dataManager
;
const
KoColorSpace
*
oldColorSpace
=
m_d
->
colorSpace
;
...
...
@@ -637,6 +644,8 @@ KUndo2Command* KisPaintDevice::convertTo(const KoColorSpace * dstColorSpace, KoC
setDataManager
(
dst
.
m_d
->
dataManager
,
dstColorSpace
);
return
cmd
;
}
void
KisPaintDevice
::
setProfile
(
const
KoColorProfile
*
profile
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment