WebRadioApp  0.1
ewextbmp.h
Go to the documentation of this file.
1 /*******************************************************************************
2  *
3  * E M B E D D E D W I Z A R D P R O J E C T
4  *
5  * Copyright (c) TARA Systems
6  *GmbH written by Paul Banach and Manfred Schweyer
7  *
8  ********************************************************************************
9  *
10  * This software and related documentation ("Software") are intellectual
11  * property owned by TARA Systems and are copyright of TARA Systems.
12  * Any modification, copying, reproduction or redistribution of the Software in
13  * whole or in part by any means not in accordance with the End-User License
14  * Agreement for Embedded Wizard is expressly prohibited. The removal of this
15  * preamble is expressly prohibited.
16  *
17  ********************************************************************************
18  *
19  * DESCRIPTION:
20  * The header 'ewextbmp' declares the platform dependent representation of a
21  * bitmap resource. This includes data structures to store the attributes of
22  * a bitmap resource and a set of macros to cover these structures.
23  *
24  * This header file provides the interface between the platform independent
25  * Graphics Engine and the platform specific representation of resources as
26  * they will be generated by the Embedded Wizard resource converters of the
27  * particular target system.
28  *
29  *******************************************************************************/
30 
31 #ifndef EWEXTBMP_H
32 #define EWEXTBMP_H
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /* The following is an identification number for bitmap resources. */
39 #define EW_MAGIC_NO_BITMAP 0x626D7064
40 #define EW_MAGIC_NO_BITMAP_R90 0x626D7065
41 #define EW_MAGIC_NO_BITMAP_R180 0x626D7066
42 #define EW_MAGIC_NO_BITMAP_R270 0x626D7067
43 
44 /* The macro EW_BITMAP_PIXEL_SECTION_NAME is used to determine the section where
45  the linker should locate the memory areas containing bitmap pixel data. */
46 #if defined EW_BITMAP_PIXEL_SECTION_NAME && !defined EW_BITMAP_PIXEL_PRAGMA
47 #define EW_STRINGIZE(aArg) EW_STRINGIZE_ARG(aArg)
48 #define EW_STRINGIZE_ARG(aArg) #aArg
49 
50 #if defined __ICCARM__
51 #define EW_BITMAP_PIXEL_PRAGMA \
52  _Pragma(EW_STRINGIZE(location = EW_STRINGIZE(EW_BITMAP_PIXEL_SECTION_NAME)))
53 #elif defined __CC_ARM
54 #define EW_BITMAP_PIXEL_PRAGMA \
55  __attribute__((section(EW_STRINGIZE(EW_BITMAP_PIXEL_SECTION_NAME))))
56 #elif defined __GNUC__
57 #define EW_BITMAP_PIXEL_PRAGMA \
58  __attribute__((section(EW_STRINGIZE(EW_BITMAP_PIXEL_SECTION_NAME))))
59 #endif
60 #endif
61 
62 #ifndef EW_BITMAP_PIXEL_PRAGMA
63 #define EW_BITMAP_PIXEL_PRAGMA
64 #endif
65 
66 /*******************************************************************************
67  * TYPE:
68  * XBmpFrameRes
69  *
70  * DESCRIPTION:
71  * The structure XBmpFrameRes describes the attributes of a single frame as it
72  * will be stored within a bitmap resource.
73  *
74  * ELEMENTS:
75  * OpqX, OpqY,
76  * OpqWidth,
77  * OpqHeight - Optional full-opaque area of the frame relative to the top-left
78  * corner of the bitmap resource.
79  * Pixel1,
80  * Pixel2 - Offset within the compressed pixel data stream of the bitmap.
81  *
82  *******************************************************************************/
83 typedef struct {
84  int OpqX;
85  int OpqY;
86  int OpqWidth;
87  int OpqHeight;
88  unsigned int Pixel1;
89  unsigned int Pixel2;
90 } XBmpFrameRes;
91 
92 /*******************************************************************************
93  * TYPE:
94  * XBmpRes
95  *
96  * DESCRIPTION:
97  * The structure XBmpRes describes the attributes of a single bitmap resource
98  * as it will be stored in the code memory.
99  *
100  * ELEMENTS:
101  * MagicNo - Unique ID of this resource type. It exists for verification
102  * purpose only.
103  * Format - Unique color format of the bitmap resource. This can be one
104  * of EW_DRIVER_VARIANT_XXX macros.
105  * FrameWidth,
106  * FrameHeight - Size in pixel of a single frame of the bitmap resource.
107  * FrameDelay - Delay in milliseconds for animated bitmap resources. If == 0,
108  * no animation will take place.
109  * NoOfFrames - Number of real frames, this bitmap resources consists of. At
110  * least one frame has to exists.
111  * Mapping - A table with indices to map between virtual frames numbers
112  * and the numbers of really existing frames. This is the case if the bitmap
113  * contains dupplicates of frames. The number of entries within the table
114  * corresponds to the number of virtual frames. The table has to be finished
115  * by 0xFFFF.
116  * Frames - Pointer to an array containing the attributes of the included
117  * frames.
118  * Pixel1,
119  * Pixel2 - Pointer to the pixel data of the bitmap. Depending on the
120  *used configuration, the data stored there can be compressed or not. Clut -
121  *Pointer to an array containing color information for bitmap resources stored
122  *in the Index8 format. The first value in the array gets the number of
123  *following color entries. The color entries are stored with 32-bit per value.
124  *Every value is stored in the format corresponding to the of pixel in the
125  *Native bitmap. Compressed - Determines whether data stored in Pixel1/Pixel2
126  *is compressed or not. Compressed pixel data has always to be copied to a
127  *surface memory before being used. Uncompressed data can (depending on the
128  *target system) be accessed directly when the bitmap is e.g. composed on the
129  *screen, etc. Name - The name of the bitmap resource. It is used for
130  *debugging only.
131  *
132  *******************************************************************************/
133 typedef struct XBmpRes {
134  unsigned int MagicNo;
135  int Format;
136  int FrameWidth;
137  int FrameHeight;
138  int FrameDelay;
139  int NoOfFrames;
140  const unsigned short *Mapping;
141  const XBmpFrameRes *Frames;
142  const void *Pixel1;
143  const void *Pixel2;
144  const unsigned int *Clut;
145  int Compressed;
146  const char *Name;
147 } XBmpRes;
148 
149 /*******************************************************************************
150  * MACRO:
151  * EW_DECLARE_BITMAP_RES
152  * EW_DEFINE_BITMAP_RES
153  * EW_BITMAP_FRAMES
154  * EW_BITMAP_FRAME
155  * EW_BITMAP_PIXEL
156  * EW_BITMAP_PIXEL_R90
157  * EW_BITMAP_PIXEL_R180
158  * EW_BITMAP_PIXEL_R270
159  * EW_BITMAP_PIXEL_U8
160  * EW_BITMAP_PIXEL_U8_R90
161  * EW_BITMAP_PIXEL_U8_R180
162  * EW_BITMAP_PIXEL_U8_R270
163  * EW_BITMAP_PIXEL_U16
164  * EW_BITMAP_PIXEL_U16_R90
165  * EW_BITMAP_PIXEL_U16_R180
166  * EW_BITMAP_PIXEL_U16_R270
167  * EW_BITMAP_PIXEL_U32
168  * EW_BITMAP_PIXEL_U32_R90
169  * EW_BITMAP_PIXEL_U32_R180
170  * EW_BITMAP_PIXEL_U32_R270
171  * EW_BITMAP_PIXEL1_U8
172  * EW_BITMAP_PIXEL1_U8_R90
173  * EW_BITMAP_PIXEL1_U8_R180
174  * EW_BITMAP_PIXEL1_U8_R270
175  * EW_BITMAP_PIXEL1_U16
176  * EW_BITMAP_PIXEL1_U16_R90
177  * EW_BITMAP_PIXEL1_U16_R180
178  * EW_BITMAP_PIXEL1_U16_R270
179  * EW_BITMAP_PIXEL1_U32
180  * EW_BITMAP_PIXEL1_U32_R90
181  * EW_BITMAP_PIXEL1_U32_R180
182  * EW_BITMAP_PIXEL1_U32_R270
183  * EW_BITMAP_PIXEL2_U8
184  * EW_BITMAP_PIXEL2_U8_R90
185  * EW_BITMAP_PIXEL2_U8_R180
186  * EW_BITMAP_PIXEL2_U8_R270
187  * EW_BITMAPS_TABLE
188  * EW_BITMAP
189  * EW_END_OF_BITMAP_RES
190  *
191  * DESCRIPTION:
192  * Following macros are used to build up the structure of a bitmap resource in
193  * a better readable way. The macros are used by the Embedded Wizard bitmap
194  * resource converter.
195  *
196  * Please note the different variants of the EW_BITMAP_PIXEL macros:
197  *
198  * - Macros having RXXX in their name determine whether the pixel data of the
199  * bitmap is stored in rotated foramt (rotated by 90, 180, 270 degree). This
200  * is essential for target systems with rotated display.
201  *
202  * - Macros having UXX in their name are used to cover uncompressed pixel
203  *data. The value XX (8,16 or 32) determine the size in bits for a single pixel
204  *in the storage. This is essential for target systems supporting bitmaps from
205  * the constant ROM code area.
206  *
207  * - The digit 1 or 2 following the PIXEL word determines the memory plane of
208  * the pixel data. If the digit is omitted, the entire pixel information is
209  * stored within a single plane.
210  *
211  *******************************************************************************/
212 #define EW_DECLARE_BITMAP_RES(aName) extern const XVariant aName;
213 
214 #define EW_DEFINE_BITMAP_RES(aName) enum { _d_##aName
215 
216 #define EW_BITMAP_FRAMES(aName, aLangId, aFormat, aFrameWidth, aFrameHeight, \
217  aFrameDelay) \
218  } \
219  ; \
220  enum { _ff_##aName##aLangId = aFormat }; \
221  enum { _fw_##aName##aLangId = aFrameWidth }; \
222  enum { _fh_##aName##aLangId = aFrameHeight }; \
223  enum { _fd_##aName##aLangId = aFrameDelay }; \
224  static const XBmpFrameRes _f_##aName##aLangId[] = {
225 #define EW_BITMAP_FRAME(aOpqX, aOpqY, aOpqWidth, aOpqHeight, aPixel1, aPixel2) \
226  { \
227  aOpqX, aOpqY, aOpqWidth, aOpqHeight, aPixel1, aPixel2 \
228  }
229 
230 #define EW_BITMAP_MAPPING(aName, aLangId) \
231  } \
232  ; \
233  static const unsigned short _fm_##aName##aLangId[] = {
234 #define EW_BITMAP_PIXEL(aName, aLangId) \
235  0xFFFF \
236  } \
237  ; \
238  extern const unsigned int _cp_##aName##aLangId[]; \
239  extern const unsigned int _cl_##aName##aLangId[]; \
240  static const XBmpRes _##aName##aLangId = { \
241  EW_MAGIC_NO_BITMAP, \
242  _ff_##aName##aLangId, \
243  _fw_##aName##aLangId, \
244  _fh_##aName##aLangId, \
245  _fd_##aName##aLangId, \
246  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
247  _fm_##aName##aLangId, \
248  _f_##aName##aLangId, \
249  _cp_##aName##aLangId, \
250  _cp_##aName##aLangId, \
251  _cl_##aName##aLangId, \
252  1, \
253  #aName}; \
254  \
255  EW_BITMAP_PIXEL_PRAGMA const unsigned int _cp_##aName##aLangId[] = {
256 #define EW_BITMAP_PIXEL_R90(aName, aLangId) \
257  0xFFFF \
258  } \
259  ; \
260  extern const unsigned int _cp_##aName##aLangId[]; \
261  extern const unsigned int _cl_##aName##aLangId[]; \
262  static const XBmpRes _##aName##aLangId = { \
263  EW_MAGIC_NO_BITMAP_R90, \
264  _ff_##aName##aLangId, \
265  _fw_##aName##aLangId, \
266  _fh_##aName##aLangId, \
267  _fd_##aName##aLangId, \
268  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
269  _fm_##aName##aLangId, \
270  _f_##aName##aLangId, \
271  _cp_##aName##aLangId, \
272  _cp_##aName##aLangId, \
273  _cl_##aName##aLangId, \
274  1, \
275  #aName}; \
276  \
277  EW_BITMAP_PIXEL_PRAGMA const unsigned int _cp_##aName##aLangId[] = {
278 #define EW_BITMAP_PIXEL_R180(aName, aLangId) \
279  0xFFFF \
280  } \
281  ; \
282  extern const unsigned int _cp_##aName##aLangId[]; \
283  extern const unsigned int _cl_##aName##aLangId[]; \
284  static const XBmpRes _##aName##aLangId = { \
285  EW_MAGIC_NO_BITMAP_R180, \
286  _ff_##aName##aLangId, \
287  _fw_##aName##aLangId, \
288  _fh_##aName##aLangId, \
289  _fd_##aName##aLangId, \
290  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
291  _fm_##aName##aLangId, \
292  _f_##aName##aLangId, \
293  _cp_##aName##aLangId, \
294  _cp_##aName##aLangId, \
295  _cl_##aName##aLangId, \
296  1, \
297  #aName}; \
298  \
299  EW_BITMAP_PIXEL_PRAGMA const unsigned int _cp_##aName##aLangId[] = {
300 #define EW_BITMAP_PIXEL_R270(aName, aLangId) \
301  0xFFFF \
302  } \
303  ; \
304  extern const unsigned int _cp_##aName##aLangId[]; \
305  extern const unsigned int _cl_##aName##aLangId[]; \
306  static const XBmpRes _##aName##aLangId = { \
307  EW_MAGIC_NO_BITMAP_R270, \
308  _ff_##aName##aLangId, \
309  _fw_##aName##aLangId, \
310  _fh_##aName##aLangId, \
311  _fd_##aName##aLangId, \
312  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
313  _fm_##aName##aLangId, \
314  _f_##aName##aLangId, \
315  _cp_##aName##aLangId, \
316  _cp_##aName##aLangId, \
317  _cl_##aName##aLangId, \
318  1, \
319  #aName}; \
320  \
321  EW_BITMAP_PIXEL_PRAGMA const unsigned int _cp_##aName##aLangId[] = {
322 #define EW_BITMAP_PIXEL_U8(aName, aLangId) \
323  0xFFFF \
324  } \
325  ; \
326  extern const unsigned char _p1_##aName##aLangId[]; \
327  extern const unsigned int _cl_##aName##aLangId[]; \
328  static const XBmpRes _##aName##aLangId = { \
329  EW_MAGIC_NO_BITMAP, \
330  _ff_##aName##aLangId, \
331  _fw_##aName##aLangId, \
332  _fh_##aName##aLangId, \
333  _fd_##aName##aLangId, \
334  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
335  _fm_##aName##aLangId, \
336  _f_##aName##aLangId, \
337  _p1_##aName##aLangId, \
338  0, \
339  _cl_##aName##aLangId, \
340  0, \
341  #aName}; \
342  \
343  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p1_##aName##aLangId[] = {
344 #define EW_BITMAP_PIXEL_U8_R90(aName, aLangId) \
345  0xFFFF \
346  } \
347  ; \
348  extern const unsigned char _p1_##aName##aLangId[]; \
349  extern const unsigned int _cl_##aName##aLangId[]; \
350  static const XBmpRes _##aName##aLangId = { \
351  EW_MAGIC_NO_BITMAP_R90, \
352  _ff_##aName##aLangId, \
353  _fw_##aName##aLangId, \
354  _fh_##aName##aLangId, \
355  _fd_##aName##aLangId, \
356  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
357  _fm_##aName##aLangId, \
358  _f_##aName##aLangId, \
359  _p1_##aName##aLangId, \
360  0, \
361  _cl_##aName##aLangId, \
362  0, \
363  #aName}; \
364  \
365  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p1_##aName##aLangId[] = {
366 #define EW_BITMAP_PIXEL_U8_R180(aName, aLangId) \
367  0xFFFF \
368  } \
369  ; \
370  extern const unsigned char _p1_##aName##aLangId[]; \
371  extern const unsigned int _cl_##aName##aLangId[]; \
372  static const XBmpRes _##aName##aLangId = { \
373  EW_MAGIC_NO_BITMAP_R180, \
374  _ff_##aName##aLangId, \
375  _fw_##aName##aLangId, \
376  _fh_##aName##aLangId, \
377  _fd_##aName##aLangId, \
378  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
379  _fm_##aName##aLangId, \
380  _f_##aName##aLangId, \
381  _p1_##aName##aLangId, \
382  0, \
383  _cl_##aName##aLangId, \
384  0, \
385  #aName}; \
386  \
387  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p1_##aName##aLangId[] = {
388 #define EW_BITMAP_PIXEL_U8_R270(aName, aLangId) \
389  0xFFFF \
390  } \
391  ; \
392  extern const unsigned char _p1_##aName##aLangId[]; \
393  extern const unsigned int _cl_##aName##aLangId[]; \
394  static const XBmpRes _##aName##aLangId = { \
395  EW_MAGIC_NO_BITMAP_R270, \
396  _ff_##aName##aLangId, \
397  _fw_##aName##aLangId, \
398  _fh_##aName##aLangId, \
399  _fd_##aName##aLangId, \
400  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
401  _fm_##aName##aLangId, \
402  _f_##aName##aLangId, \
403  _p1_##aName##aLangId, \
404  0, \
405  _cl_##aName##aLangId, \
406  0, \
407  #aName}; \
408  \
409  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p1_##aName##aLangId[] = {
410 #define EW_BITMAP_PIXEL_U16(aName, aLangId) \
411  0xFFFF \
412  } \
413  ; \
414  extern const unsigned short _p1_##aName##aLangId[]; \
415  static const XBmpRes _##aName##aLangId = { \
416  EW_MAGIC_NO_BITMAP, \
417  _ff_##aName##aLangId, \
418  _fw_##aName##aLangId, \
419  _fh_##aName##aLangId, \
420  _fd_##aName##aLangId, \
421  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
422  _fm_##aName##aLangId, \
423  _f_##aName##aLangId, \
424  _p1_##aName##aLangId, \
425  0, \
426  0, \
427  0, \
428  #aName}; \
429  \
430  EW_BITMAP_PIXEL_PRAGMA const unsigned short _p1_##aName##aLangId[] = {
431 #define EW_BITMAP_PIXEL_U16_R90(aName, aLangId) \
432  0xFFFF \
433  } \
434  ; \
435  extern const unsigned short _p1_##aName##aLangId[]; \
436  static const XBmpRes _##aName##aLangId = { \
437  EW_MAGIC_NO_BITMAP_R90, \
438  _ff_##aName##aLangId, \
439  _fw_##aName##aLangId, \
440  _fh_##aName##aLangId, \
441  _fd_##aName##aLangId, \
442  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
443  _fm_##aName##aLangId, \
444  _f_##aName##aLangId, \
445  _p1_##aName##aLangId, \
446  0, \
447  0, \
448  0, \
449  #aName}; \
450  \
451  EW_BITMAP_PIXEL_PRAGMA const unsigned short _p1_##aName##aLangId[] = {
452 #define EW_BITMAP_PIXEL_U16_R180(aName, aLangId) \
453  0xFFFF \
454  } \
455  ; \
456  extern const unsigned short _p1_##aName##aLangId[]; \
457  static const XBmpRes _##aName##aLangId = { \
458  EW_MAGIC_NO_BITMAP_R180, \
459  _ff_##aName##aLangId, \
460  _fw_##aName##aLangId, \
461  _fh_##aName##aLangId, \
462  _fd_##aName##aLangId, \
463  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
464  _fm_##aName##aLangId, \
465  _f_##aName##aLangId, \
466  _p1_##aName##aLangId, \
467  0, \
468  0, \
469  0, \
470  #aName}; \
471  \
472  EW_BITMAP_PIXEL_PRAGMA const unsigned short _p1_##aName##aLangId[] = {
473 #define EW_BITMAP_PIXEL_U16_R270(aName, aLangId) \
474  0xFFFF \
475  } \
476  ; \
477  extern const unsigned short _p1_##aName##aLangId[]; \
478  static const XBmpRes _##aName##aLangId = { \
479  EW_MAGIC_NO_BITMAP_R270, \
480  _ff_##aName##aLangId, \
481  _fw_##aName##aLangId, \
482  _fh_##aName##aLangId, \
483  _fd_##aName##aLangId, \
484  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
485  _fm_##aName##aLangId, \
486  _f_##aName##aLangId, \
487  _p1_##aName##aLangId, \
488  0, \
489  0, \
490  0, \
491  #aName}; \
492  \
493  EW_BITMAP_PIXEL_PRAGMA const unsigned short _p1_##aName##aLangId[] = {
494 #define EW_BITMAP_PIXEL_U32(aName, aLangId) \
495  0xFFFF \
496  } \
497  ; \
498  extern const unsigned int _p1_##aName##aLangId[]; \
499  static const XBmpRes _##aName##aLangId = { \
500  EW_MAGIC_NO_BITMAP, \
501  _ff_##aName##aLangId, \
502  _fw_##aName##aLangId, \
503  _fh_##aName##aLangId, \
504  _fd_##aName##aLangId, \
505  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
506  _fm_##aName##aLangId, \
507  _f_##aName##aLangId, \
508  _p1_##aName##aLangId, \
509  0, \
510  0, \
511  0, \
512  #aName}; \
513  \
514  EW_BITMAP_PIXEL_PRAGMA const unsigned int _p1_##aName##aLangId[] = {
515 #define EW_BITMAP_PIXEL_U32_R90(aName, aLangId) \
516  0xFFFF \
517  } \
518  ; \
519  extern const unsigned int _p1_##aName##aLangId[]; \
520  static const XBmpRes _##aName##aLangId = { \
521  EW_MAGIC_NO_BITMAP_R90, \
522  _ff_##aName##aLangId, \
523  _fw_##aName##aLangId, \
524  _fh_##aName##aLangId, \
525  _fd_##aName##aLangId, \
526  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
527  _fm_##aName##aLangId, \
528  _f_##aName##aLangId, \
529  _p1_##aName##aLangId, \
530  0, \
531  0, \
532  0, \
533  #aName}; \
534  \
535  EW_BITMAP_PIXEL_PRAGMA const unsigned int _p1_##aName##aLangId[] = {
536 #define EW_BITMAP_PIXEL_U32_R180(aName, aLangId) \
537  0xFFFF \
538  } \
539  ; \
540  extern const unsigned int _p1_##aName##aLangId[]; \
541  static const XBmpRes _##aName##aLangId = { \
542  EW_MAGIC_NO_BITMAP_R180, \
543  _ff_##aName##aLangId, \
544  _fw_##aName##aLangId, \
545  _fh_##aName##aLangId, \
546  _fd_##aName##aLangId, \
547  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
548  _fm_##aName##aLangId, \
549  _f_##aName##aLangId, \
550  _p1_##aName##aLangId, \
551  0, \
552  0, \
553  0, \
554  #aName}; \
555  \
556  EW_BITMAP_PIXEL_PRAGMA const unsigned int _p1_##aName##aLangId[] = {
557 #define EW_BITMAP_PIXEL_U32_R270(aName, aLangId) \
558  0xFFFF \
559  } \
560  ; \
561  extern const unsigned int _p1_##aName##aLangId[]; \
562  static const XBmpRes _##aName##aLangId = { \
563  EW_MAGIC_NO_BITMAP_R270, \
564  _ff_##aName##aLangId, \
565  _fw_##aName##aLangId, \
566  _fh_##aName##aLangId, \
567  _fd_##aName##aLangId, \
568  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
569  _fm_##aName##aLangId, \
570  _f_##aName##aLangId, \
571  _p1_##aName##aLangId, \
572  0, \
573  0, \
574  0, \
575  #aName}; \
576  \
577  EW_BITMAP_PIXEL_PRAGMA const unsigned int _p1_##aName##aLangId[] = {
578 #define EW_BITMAP_PIXEL1_U8(aName, aLangId) \
579  0xFFFF \
580  } \
581  ; \
582  extern const unsigned char _p1_##aName##aLangId[]; \
583  extern const unsigned char _p2_##aName##aLangId[]; \
584  static const XBmpRes _##aName##aLangId = { \
585  EW_MAGIC_NO_BITMAP, \
586  _ff_##aName##aLangId, \
587  _fw_##aName##aLangId, \
588  _fh_##aName##aLangId, \
589  _fd_##aName##aLangId, \
590  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
591  _fm_##aName##aLangId, \
592  _f_##aName##aLangId, \
593  _p1_##aName##aLangId, \
594  _p2_##aName##aLangId, \
595  0, \
596  0, \
597  #aName}; \
598  \
599  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p1_##aName##aLangId[] = {
600 #define EW_BITMAP_PIXEL1_U8_R90(aName, aLangId) \
601  0xFFFF \
602  } \
603  ; \
604  extern const unsigned char _p1_##aName##aLangId[]; \
605  extern const unsigned char _p2_##aName##aLangId[]; \
606  static const XBmpRes _##aName##aLangId = { \
607  EW_MAGIC_NO_BITMAP_R90, \
608  _ff_##aName##aLangId, \
609  _fw_##aName##aLangId, \
610  _fh_##aName##aLangId, \
611  _fd_##aName##aLangId, \
612  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
613  _fm_##aName##aLangId, \
614  _f_##aName##aLangId, \
615  _p1_##aName##aLangId, \
616  _p2_##aName##aLangId, \
617  0, \
618  0, \
619  #aName}; \
620  \
621  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p1_##aName##aLangId[] = {
622 #define EW_BITMAP_PIXEL1_U8_R180(aName, aLangId) \
623  0xFFFF \
624  } \
625  ; \
626  extern const unsigned char _p1_##aName##aLangId[]; \
627  extern const unsigned char _p2_##aName##aLangId[]; \
628  static const XBmpRes _##aName##aLangId = { \
629  EW_MAGIC_NO_BITMAP_R180, \
630  _ff_##aName##aLangId, \
631  _fw_##aName##aLangId, \
632  _fh_##aName##aLangId, \
633  _fd_##aName##aLangId, \
634  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
635  _fm_##aName##aLangId, \
636  _f_##aName##aLangId, \
637  _p1_##aName##aLangId, \
638  _p2_##aName##aLangId, \
639  0, \
640  0, \
641  #aName}; \
642  \
643  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p1_##aName##aLangId[] = {
644 #define EW_BITMAP_PIXEL1_U8_R270(aName, aLangId) \
645  0xFFFF \
646  } \
647  ; \
648  extern const unsigned char _p1_##aName##aLangId[]; \
649  extern const unsigned char _p2_##aName##aLangId[]; \
650  static const XBmpRes _##aName##aLangId = { \
651  EW_MAGIC_NO_BITMAP_R270, \
652  _ff_##aName##aLangId, \
653  _fw_##aName##aLangId, \
654  _fh_##aName##aLangId, \
655  _fd_##aName##aLangId, \
656  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
657  _fm_##aName##aLangId, \
658  _f_##aName##aLangId, \
659  _p1_##aName##aLangId, \
660  _p2_##aName##aLangId, \
661  0, \
662  0, \
663  #aName}; \
664  \
665  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p1_##aName##aLangId[] = {
666 #define EW_BITMAP_PIXEL1_U16(aName, aLangId) \
667  0xFFFF \
668  } \
669  ; \
670  extern const unsigned short _p1_##aName##aLangId[]; \
671  extern const unsigned char _p2_##aName##aLangId[]; \
672  static const XBmpRes _##aName##aLangId = { \
673  EW_MAGIC_NO_BITMAP, \
674  _ff_##aName##aLangId, \
675  _fw_##aName##aLangId, \
676  _fh_##aName##aLangId, \
677  _fd_##aName##aLangId, \
678  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
679  _fm_##aName##aLangId, \
680  _f_##aName##aLangId, \
681  _p1_##aName##aLangId, \
682  _p2_##aName##aLangId, \
683  0, \
684  0, \
685  #aName}; \
686  \
687  EW_BITMAP_PIXEL_PRAGMA const unsigned short _p1_##aName##aLangId[] = {
688 #define EW_BITMAP_PIXEL1_U16_R90(aName, aLangId) \
689  0xFFFF \
690  } \
691  ; \
692  extern const unsigned short _p1_##aName##aLangId[]; \
693  extern const unsigned char _p2_##aName##aLangId[]; \
694  static const XBmpRes _##aName##aLangId = { \
695  EW_MAGIC_NO_BITMAP_R90, \
696  _ff_##aName##aLangId, \
697  _fw_##aName##aLangId, \
698  _fh_##aName##aLangId, \
699  _fd_##aName##aLangId, \
700  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
701  _fm_##aName##aLangId, \
702  _f_##aName##aLangId, \
703  _p1_##aName##aLangId, \
704  _p2_##aName##aLangId, \
705  0, \
706  0, \
707  #aName}; \
708  \
709  EW_BITMAP_PIXEL_PRAGMA const unsigned short _p1_##aName##aLangId[] = {
710 #define EW_BITMAP_PIXEL1_U16_R180(aName, aLangId) \
711  0xFFFF \
712  } \
713  ; \
714  extern const unsigned short _p1_##aName##aLangId[]; \
715  extern const unsigned char _p2_##aName##aLangId[]; \
716  static const XBmpRes _##aName##aLangId = { \
717  EW_MAGIC_NO_BITMAP_R180, \
718  _ff_##aName##aLangId, \
719  _fw_##aName##aLangId, \
720  _fh_##aName##aLangId, \
721  _fd_##aName##aLangId, \
722  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
723  _fm_##aName##aLangId, \
724  _f_##aName##aLangId, \
725  _p1_##aName##aLangId, \
726  _p2_##aName##aLangId, \
727  0, \
728  0, \
729  #aName}; \
730  \
731  EW_BITMAP_PIXEL_PRAGMA const unsigned short _p1_##aName##aLangId[] = {
732 #define EW_BITMAP_PIXEL1_U16_R270(aName, aLangId) \
733  0xFFFF \
734  } \
735  ; \
736  extern const unsigned short _p1_##aName##aLangId[]; \
737  extern const unsigned char _p2_##aName##aLangId[]; \
738  static const XBmpRes _##aName##aLangId = { \
739  EW_MAGIC_NO_BITMAP_R270, \
740  _ff_##aName##aLangId, \
741  _fw_##aName##aLangId, \
742  _fh_##aName##aLangId, \
743  _fd_##aName##aLangId, \
744  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
745  _fm_##aName##aLangId, \
746  _f_##aName##aLangId, \
747  _p1_##aName##aLangId, \
748  _p2_##aName##aLangId, \
749  0, \
750  0, \
751  #aName}; \
752  \
753  EW_BITMAP_PIXEL_PRAGMA const unsigned short _p1_##aName##aLangId[] = {
754 #define EW_BITMAP_PIXEL1_U32(aName, aLangId) \
755  0xFFFF \
756  } \
757  ; \
758  extern const unsigned int _p1_##aName##aLangId[]; \
759  extern const unsigned char _p2_##aName##aLangId[]; \
760  static const XBmpRes _##aName##aLangId = { \
761  EW_MAGIC_NO_BITMAP, \
762  _ff_##aName##aLangId, \
763  _fw_##aName##aLangId, \
764  _fh_##aName##aLangId, \
765  _fd_##aName##aLangId, \
766  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
767  _fm_##aName##aLangId, \
768  _f_##aName##aLangId, \
769  _p1_##aName##aLangId, \
770  _p2_##aName##aLangId, \
771  0, \
772  0, \
773  #aName}; \
774  \
775  EW_BITMAP_PIXEL_PRAGMA const unsigned int _p1_##aName##aLangId[] = {
776 #define EW_BITMAP_PIXEL1_U32_R90(aName, aLangId) \
777  0xFFFF \
778  } \
779  ; \
780  extern const unsigned int _p1_##aName##aLangId[]; \
781  extern const unsigned char _p2_##aName##aLangId[]; \
782  static const XBmpRes _##aName##aLangId = { \
783  EW_MAGIC_NO_BITMAP_R90, \
784  _ff_##aName##aLangId, \
785  _fw_##aName##aLangId, \
786  _fh_##aName##aLangId, \
787  _fd_##aName##aLangId, \
788  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
789  _fm_##aName##aLangId, \
790  _f_##aName##aLangId, \
791  _p1_##aName##aLangId, \
792  _p2_##aName##aLangId, \
793  0, \
794  0, \
795  #aName}; \
796  \
797  EW_BITMAP_PIXEL_PRAGMA const unsigned int _p1_##aName##aLangId[] = {
798 #define EW_BITMAP_PIXEL1_U32_R180(aName, aLangId) \
799  0xFFFF \
800  } \
801  ; \
802  extern const unsigned int _p1_##aName##aLangId[]; \
803  extern const unsigned char _p2_##aName##aLangId[]; \
804  static const XBmpRes _##aName##aLangId = { \
805  EW_MAGIC_NO_BITMAP_R180, \
806  _ff_##aName##aLangId, \
807  _fw_##aName##aLangId, \
808  _fh_##aName##aLangId, \
809  _fd_##aName##aLangId, \
810  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
811  _fm_##aName##aLangId, \
812  _f_##aName##aLangId, \
813  _p1_##aName##aLangId, \
814  _p2_##aName##aLangId, \
815  0, \
816  0, \
817  #aName}; \
818  \
819  EW_BITMAP_PIXEL_PRAGMA const unsigned int _p1_##aName##aLangId[] = {
820 #define EW_BITMAP_PIXEL1_U32_R270(aName, aLangId) \
821  0xFFFF \
822  } \
823  ; \
824  extern const unsigned int _p1_##aName##aLangId[]; \
825  extern const unsigned char _p2_##aName##aLangId[]; \
826  static const XBmpRes _##aName##aLangId = { \
827  EW_MAGIC_NO_BITMAP_R270, \
828  _ff_##aName##aLangId, \
829  _fw_##aName##aLangId, \
830  _fh_##aName##aLangId, \
831  _fd_##aName##aLangId, \
832  sizeof(_f_##aName##aLangId) / sizeof(_f_##aName##aLangId[0]), \
833  _fm_##aName##aLangId, \
834  _f_##aName##aLangId, \
835  _p1_##aName##aLangId, \
836  _p2_##aName##aLangId, \
837  0, \
838  0, \
839  #aName}; \
840  \
841  EW_BITMAP_PIXEL_PRAGMA const unsigned int _p1_##aName##aLangId[] = {
842 #define EW_BITMAP_PIXEL2_U8(aName, aLangId) \
843  } \
844  ; \
845  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p2_##aName##aLangId[] = {
846 #define EW_BITMAP_PIXEL2_U8_R90(aName, aLangId) \
847  } \
848  ; \
849  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p2_##aName##aLangId[] = {
850 #define EW_BITMAP_PIXEL2_U8_R180(aName, aLangId) \
851  } \
852  ; \
853  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p2_##aName##aLangId[] = {
854 #define EW_BITMAP_PIXEL2_U8_R270(aName, aLangId) \
855  } \
856  ; \
857  EW_BITMAP_PIXEL_PRAGMA const unsigned char _p2_##aName##aLangId[] = {
858 #define EW_BITMAP_CLUT(aName, aLangId) \
859  } \
860  ; \
861  const unsigned int _cl_##aName##aLangId[] = {
862 #define EW_BITMAP_CLUT_EMPTY(aName, aLangId) \
863  } \
864  ; \
865  const unsigned int _cl_##aName##aLangId[] = {0
866 
867 #define EW_BITMAPS_TABLE(aName) \
868  } \
869  ; \
870  static const XResource _##aName[] = {
871 #define EW_BITMAP(aName, aLangId) \
872  { \
873  aLangId, &_##aName##aLangId \
874  }
875 
876 #define EW_END_OF_BITMAP_RES(aName) \
877  } \
878  ;
879 
880 #ifdef __cplusplus
881 }
882 #endif
883 
884 #endif /* EWEXTBMP_H */
885 
886 /* pba, msy */
XBmpRes::MagicNo
unsigned int MagicNo
Definition: ewextbmp.h:174
XBmpRes::FrameHeight
int FrameHeight
Definition: ewextbmp.h:177
XBmpRes::Format
int Format
Definition: ewextbmp.h:175
XBmpRes::Frames
const XBmpFrameRes * Frames
Definition: ewextbmp.h:181
XBmpRes::FrameDelay
int FrameDelay
Definition: ewextbmp.h:178
XBmpRes::FrameWidth
int FrameWidth
Definition: ewextbmp.h:176
XBmpRes::NoOfFrames
int NoOfFrames
Definition: ewextbmp.h:179
XBmpRes
Definition: ewextbmp.h:133
XBmpRes::Mapping
const unsigned short * Mapping
Definition: ewextbmp.h:180
XBmpRes::Compressed
int Compressed
Definition: ewextbmp.h:185
XBmpFrameRes
Definition: ewextbmp.h:83
XBmpRes::Pixel2
const void * Pixel2
Definition: ewextbmp.h:183
XBmpRes::Name
const char * Name
Definition: ewextbmp.h:186
XBmpRes::Clut
const unsigned int * Clut
Definition: ewextbmp.h:184
XBmpRes
struct XBmpRes XBmpRes
XBmpRes::Pixel1
const void * Pixel1
Definition: ewextbmp.h:182