annotate src/dmimage.c @ 2294:7f6ba3b32f54

Cleanups.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 03 Jul 2019 10:28:43 +0300
parents 7a2337dcd1b3
children 0e355702435d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 /*
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 * DMLib
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 * -- Bitmap image conversion and loading
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 * Programmed and designed by Matti 'ccr' Hamalainen
950
88d9440afad0 Use dmzlib module in stb_image.
Matti Hamalainen <ccr@tnsp.org>
parents: 900
diff changeset
5 * (C) Copyright 2012-2015 Tecnic Software productions (TNSP)
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 */
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 #include "dmimage.h"
950
88d9440afad0 Use dmzlib module in stb_image.
Matti Hamalainen <ccr@tnsp.org>
parents: 900
diff changeset
8 #include "dmzlib.h"
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9
1135
73808dce89e6 Disable formats other than PNG and JPEG from stb_image.
Matti Hamalainen <ccr@tnsp.org>
parents: 1102
diff changeset
10 // Formats
73808dce89e6 Disable formats other than PNG and JPEG from stb_image.
Matti Hamalainen <ccr@tnsp.org>
parents: 1102
diff changeset
11 #define STBI_ONLY_JPEG 1
73808dce89e6 Disable formats other than PNG and JPEG from stb_image.
Matti Hamalainen <ccr@tnsp.org>
parents: 1102
diff changeset
12 #define STBI_ONLY_PNG 1
73808dce89e6 Disable formats other than PNG and JPEG from stb_image.
Matti Hamalainen <ccr@tnsp.org>
parents: 1102
diff changeset
13 //#define STBI_NO_HDR 1
73808dce89e6 Disable formats other than PNG and JPEG from stb_image.
Matti Hamalainen <ccr@tnsp.org>
parents: 1102
diff changeset
14
73808dce89e6 Disable formats other than PNG and JPEG from stb_image.
Matti Hamalainen <ccr@tnsp.org>
parents: 1102
diff changeset
15 // Other options, etc.
1046
7e54b2d08ce7 Add special debug error message function/macro that can be
Matti Hamalainen <ccr@tnsp.org>
parents: 1042
diff changeset
16 #ifndef DM_DEBUG
900
df2a9c635175 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 899
diff changeset
17 #define STBI_NO_FAILURE_STRINGS 1
1138
2e728c38a386 Define STBI_ASSERT(x) as dummy if DM_DEBUG is not enabled.
Matti Hamalainen <ccr@tnsp.org>
parents: 1135
diff changeset
18 #define STBI_ASSERT(x)
1046
7e54b2d08ce7 Add special debug error message function/macro that can be
Matti Hamalainen <ccr@tnsp.org>
parents: 1042
diff changeset
19 #endif
900
df2a9c635175 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 899
diff changeset
20 #define STBI_FAILURE_USERMSG 1
df2a9c635175 Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 899
diff changeset
21
899
63fd1801f983 Mangle new stb_image to our purposes.
Matti Hamalainen <ccr@tnsp.org>
parents: 870
diff changeset
22 #define STB_IMAGE_IMPLEMENTATION 1
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 #define STBI_NO_STDIO 1
899
63fd1801f983 Mangle new stb_image to our purposes.
Matti Hamalainen <ccr@tnsp.org>
parents: 870
diff changeset
24
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25 #include "stb_image.c"
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27
1154
494fa5998b65 Move RGBA mask definitions to static global variables that are
Matti Hamalainen <ccr@tnsp.org>
parents: 1138
diff changeset
28 SDL_Surface *dmCreateRGBSurfaceFrom(void *data,
494fa5998b65 Move RGBA mask definitions to static global variables that are
Matti Hamalainen <ccr@tnsp.org>
parents: 1138
diff changeset
29 const int width, const int height,
494fa5998b65 Move RGBA mask definitions to static global variables that are
Matti Hamalainen <ccr@tnsp.org>
parents: 1138
diff changeset
30 const int depth, const int pitch,
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
31 const Uint32 format)
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32 {
757
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
33 // Create source surface from given data
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
34 SDL_Surface
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
35 *result = NULL,
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
36 *tmp = SDL_CreateRGBSurfaceWithFormatFrom(data, width, height, depth, pitch, format);
757
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
37
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
38 // Create result conversion surface
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
39 if (tmp != NULL)
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 {
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
41 result = SDL_ConvertSurfaceFormat(tmp, SDL_PIXELFORMAT_RGBA32, 0);
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42 SDL_FreeSurface(tmp);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43 }
1102
e06abfde6c39 Cosmetics pass: Remove excess whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 1080
diff changeset
44
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45 return result;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
46 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49 SDL_Surface *dmCreatePaletteSurfaceFrom(void *data, const int width, const int height, const int pitch)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51 int yc;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 Uint8 *dst, *src;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 SDL_Surface *result;
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
54 result = SDL_CreateRGBSurfaceWithFormat(0, width, height, 8, SDL_PIXELFORMAT_INDEX8);
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 if (result == NULL)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 return NULL;
1102
e06abfde6c39 Cosmetics pass: Remove excess whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 1080
diff changeset
57
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 dst = result->pixels;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59 src = data;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60 for (yc = 0; yc < height; yc++)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
62 memcpy(dst, src, width * sizeof(Uint8));
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63 dst += result->pitch;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64 src += pitch;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67 return result;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 static int dmSTBIread(void *user, char *data, int size)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73 return dmfread(data, 1, size, (DMResource *) user);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76
899
63fd1801f983 Mangle new stb_image to our purposes.
Matti Hamalainen <ccr@tnsp.org>
parents: 870
diff changeset
77 static void dmSTBIskip(void *user, int n)
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79 dmfseek((DMResource *) user, n, SEEK_CUR);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
81
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
82
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
83 static int dmSTBIeof(void *user)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 return dmfeof((DMResource *) user);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
88
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
89 static const stbi_io_callbacks dmSTBICallbacks =
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
90 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
91 dmSTBIread,
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
92 dmSTBIskip,
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
93 dmSTBIeof,
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
94 };
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
95
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97 SDL_Surface *dmLoadImage(DMResource *file)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99 SDL_Surface *result = NULL;
963
1ffc48d0feaf Initialize variables so that we don't get garbage in error situations.
Matti Hamalainen <ccr@tnsp.org>
parents: 958
diff changeset
100 int width = 0, height = 0, comp = 0;
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101 Uint8 *data;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
102
1203
2b48b7fe95bc Use dmfreset() instead of dmfseek() to seek to stream start.
Matti Hamalainen <ccr@tnsp.org>
parents: 1165
diff changeset
103 dmfreset(file);
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
104 data = stbi_load_from_callbacks(&dmSTBICallbacks, file, &width, &height, &comp, 0);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
105
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
106 if (data == NULL)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
107 {
1080
76b7d1d20545 Change message to debug.
Matti Hamalainen <ccr@tnsp.org>
parents: 1048
diff changeset
108 dmErrorDBGMsg(
958
985225a93aeb Add error code parameter to dmError() and dmErrorVA().
Matti Hamalainen <ccr@tnsp.org>
parents: 950
diff changeset
109 "Error decoding image resource %p '%s' [%d, %d, %d]: %s\n",
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
110 file, file->filename, width, height, comp, stbi_failure_reason());
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
111 return NULL;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
112 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
113
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
114
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115 switch (comp)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
116 {
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
117 case 4:
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
118 result = dmCreateRGBSurfaceFrom(data, width, height, comp * 8, width * comp,
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
119 #if SDL_BYTEORDER == SDL_BIG_ENDIAN
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
120 SDL_PIXELFORMAT_ABGR8888
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
121 #else
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
122 SDL_PIXELFORMAT_ARGB8888
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
123 #endif
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
124 );
757
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
125 break;
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
126
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
127 case 3:
1155
d46966ad3b08 Add note about the 24-bit RGBA masks being different.
Matti Hamalainen <ccr@tnsp.org>
parents: 1154
diff changeset
128 // These masks are different from the dmX*masks
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
129 result = dmCreateRGBSurfaceFrom(data, width, height, comp * 8, width * comp,
757
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
130 #if SDL_BYTEORDER == SDL_BIG_ENDIAN
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
131 SDL_PIXELFORMAT_BGR888
757
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
132 #else
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
133 SDL_PIXELFORMAT_RGB888
757
dd59a650a318 Fix 24-bit surface conversions in image loader.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
134 #endif
1560
7a2337dcd1b3 Cleanup some remnants of SDL1 code.
Matti Hamalainen <ccr@tnsp.org>
parents: 1557
diff changeset
135 );
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
136 break;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
137
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
138 case 1:
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
139 result = dmCreatePaletteSurfaceFrom(data, width, height, width * comp);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
140 break;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
141 }
1102
e06abfde6c39 Cosmetics pass: Remove excess whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents: 1080
diff changeset
142
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
143 stbi_image_free(data);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
144
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
145 if (result == NULL)
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
146 {
1048
509e6ed3a24e Finishing touches to the DM_DEBUG stuff.
Matti Hamalainen <ccr@tnsp.org>
parents: 1046
diff changeset
147 dmErrorDBGMsg(
958
985225a93aeb Add error code parameter to dmError() and dmErrorVA().
Matti Hamalainen <ccr@tnsp.org>
parents: 950
diff changeset
148 "Format conversion failed for image resource %p '%s' [%d, %d, %d].\n",
0
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
149 file, file->filename, width, height, comp);
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
150 }
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
151
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
152 return result;
32250b436bca Initial re-import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
153 }
1557
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
154
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
155
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
156 SDL_Texture *dmLoadImageToTexture(DMResource *file, SDL_Renderer *renderer)
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
157 {
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
158 SDL_Surface *tmp;
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
159 SDL_Texture *texture;
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
160
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
161 // Sanity checks
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
162 if (renderer == NULL || file == NULL)
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
163 return NULL;
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
164
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
165 if ((tmp = dmLoadImage(file)) == NULL)
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
166 return NULL;
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
167
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
168 // Attempt to create the texture
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
169 texture = SDL_CreateTextureFromSurface(renderer, tmp);
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
170 SDL_FreeSurface(tmp);
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
171
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
172 return texture;
5e5f75b45f8d Initial port to SDL2. Many things will not work now.
Matti Hamalainen <ccr@tnsp.org>
parents: 1203
diff changeset
173 }