Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
16944f50
Commit
16944f50
authored
Aug 29, 2011
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user32: Simplify the DIB byte width computation.
parent
afa7817d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
23 deletions
+6
-23
cursoricon.c
dlls/user32/cursoricon.c
+6
-23
No files found.
dlls/user32/cursoricon.c
View file @
16944f50
...
...
@@ -316,29 +316,13 @@ static void *map_fileW( LPCWSTR name, LPDWORD filesize )
/***********************************************************************
* get_dib_
width_bytes
* get_dib_
image_size
*
* Return the
width of a DIB bitmap in bytes. DIB bitmap data is 32-bit aligned
.
* Return the
size of a DIB bitmap in bytes
.
*/
static
int
get_dib_
width_bytes
(
int
width
,
int
depth
)
static
int
get_dib_
image_size
(
int
width
,
int
height
,
int
depth
)
{
int
words
;
switch
(
depth
)
{
case
1
:
words
=
(
width
+
31
)
/
32
;
break
;
case
4
:
words
=
(
width
+
7
)
/
8
;
break
;
case
8
:
words
=
(
width
+
3
)
/
4
;
break
;
case
15
:
case
16
:
words
=
(
width
+
1
)
/
2
;
break
;
case
24
:
words
=
(
width
*
3
+
3
)
/
4
;
break
;
default:
WARN
(
"(%d): Unsupported depth
\n
"
,
depth
);
/* fall through */
case
32
:
words
=
width
;
}
return
4
*
words
;
return
(((
width
*
depth
+
31
)
/
8
)
&
~
3
)
*
abs
(
height
);
}
...
...
@@ -866,8 +850,7 @@ static HICON create_icon_from_bmi( BITMAPINFO *bmi, HMODULE module, LPCWSTR resn
color_bits
=
(
const
char
*
)
bmi
+
size
;
mask_bits
=
(
const
char
*
)
color_bits
+
get_dib_width_bytes
(
bmi
->
bmiHeader
.
biWidth
,
bmi
->
bmiHeader
.
biBitCount
)
*
abs
(
bmi_copy
->
bmiHeader
.
biHeight
);
get_dib_image_size
(
bmi
->
bmiHeader
.
biWidth
,
bmi_copy
->
bmiHeader
.
biHeight
,
bmi
->
bmiHeader
.
biBitCount
);
alpha
=
0
;
if
(
monochrome
)
...
...
@@ -2084,7 +2067,7 @@ static void stretch_blt_icon( HDC hdc_dst, int dst_x, int dst_y, int dst_width,
info
->
bmiHeader
.
biPlanes
=
GetDeviceCaps
(
hdc_dst
,
PLANES
);
info
->
bmiHeader
.
biBitCount
=
GetDeviceCaps
(
hdc_dst
,
BITSPIXEL
);
info
->
bmiHeader
.
biCompression
=
BI_RGB
;
info
->
bmiHeader
.
biSizeImage
=
height
*
get_dib_width_bytes
(
width
,
info
->
bmiHeader
.
biBitCount
);
info
->
bmiHeader
.
biSizeImage
=
get_dib_image_size
(
width
,
height
,
info
->
bmiHeader
.
biBitCount
);
info
->
bmiHeader
.
biXPelsPerMeter
=
0
;
info
->
bmiHeader
.
biYPelsPerMeter
=
0
;
info
->
bmiHeader
.
biClrUsed
=
0
;
...
...
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