Blame view

ios/cocos2d/cocos/editor-support/spine/Atlas.h 5.6 KB
520389e3   xiaoyu   接入cocos源码,编译未通过,继续修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
  /******************************************************************************
   * Spine Runtimes Software License v2.5
   *
   * Copyright (c) 2013-2016, Esoteric Software
   * All rights reserved.
   *
   * You are granted a perpetual, non-exclusive, non-sublicensable, and
   * non-transferable license to use, install, execute, and perform the Spine
   * Runtimes software and derivative works solely for personal or internal
   * use. Without the written permission of Esoteric Software (see Section 2 of
   * the Spine Software License Agreement), you may not (a) modify, translate,
   * adapt, or develop new applications using the Spine Runtimes or otherwise
   * create derivative works or improvements of the Spine Runtimes or (b) remove,
   * delete, alter, or obscure any trademarks or any copyright, trademark, patent,
   * or other intellectual property or proprietary rights notices on or in the
   * Software, including any copy thereof. Redistributions in binary or source
   * form must include this license and terms.
   *
   * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
   * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
   * USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGE.
   *****************************************************************************/
  
  #ifndef SPINE_ATLAS_H_
  #define SPINE_ATLAS_H_
  
  #include <spine/dll.h>
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  typedef struct spAtlas spAtlas;
  
  typedef enum {
  	SP_ATLAS_UNKNOWN_FORMAT,
  	SP_ATLAS_ALPHA,
  	SP_ATLAS_INTENSITY,
  	SP_ATLAS_LUMINANCE_ALPHA,
  	SP_ATLAS_RGB565,
  	SP_ATLAS_RGBA4444,
  	SP_ATLAS_RGB888,
  	SP_ATLAS_RGBA8888
  } spAtlasFormat;
  
  typedef enum {
  	SP_ATLAS_UNKNOWN_FILTER,
  	SP_ATLAS_NEAREST,
  	SP_ATLAS_LINEAR,
  	SP_ATLAS_MIPMAP,
  	SP_ATLAS_MIPMAP_NEAREST_NEAREST,
  	SP_ATLAS_MIPMAP_LINEAR_NEAREST,
  	SP_ATLAS_MIPMAP_NEAREST_LINEAR,
  	SP_ATLAS_MIPMAP_LINEAR_LINEAR
  } spAtlasFilter;
  
  typedef enum {
  	SP_ATLAS_MIRROREDREPEAT,
  	SP_ATLAS_CLAMPTOEDGE,
  	SP_ATLAS_REPEAT
  } spAtlasWrap;
  
  typedef struct spAtlasPage spAtlasPage;
  struct spAtlasPage {
  	const spAtlas* atlas;
  	const char* name;
  	spAtlasFormat format;
  	spAtlasFilter minFilter, magFilter;
  	spAtlasWrap uWrap, vWrap;
  
  	void* rendererObject;
  	int width, height;
  
  	spAtlasPage* next;
  };
  
  SP_API spAtlasPage* spAtlasPage_create (spAtlas* atlas, const char* name);
  SP_API void spAtlasPage_dispose (spAtlasPage* self);
  
  #ifdef SPINE_SHORT_NAMES
  typedef spAtlasFormat AtlasFormat;
  #define ATLAS_UNKNOWN_FORMAT SP_ATLAS_UNKNOWN_FORMAT
  #define ATLAS_ALPHA SP_ATLAS_ALPHA
  #define ATLAS_INTENSITY SP_ATLAS_INTENSITY
  #define ATLAS_LUMINANCE_ALPHA SP_ATLAS_LUMINANCE_ALPHA
  #define ATLAS_RGB565 SP_ATLAS_RGB565
  #define ATLAS_RGBA4444 SP_ATLAS_RGBA4444
  #define ATLAS_RGB888 SP_ATLAS_RGB888
  #define ATLAS_RGBA8888 SP_ATLAS_RGBA8888
  typedef spAtlasFilter AtlasFilter;
  #define ATLAS_UNKNOWN_FILTER SP_ATLAS_UNKNOWN_FILTER
  #define ATLAS_NEAREST SP_ATLAS_NEAREST
  #define ATLAS_LINEAR SP_ATLAS_LINEAR
  #define ATLAS_MIPMAP SP_ATLAS_MIPMAP
  #define ATLAS_MIPMAP_NEAREST_NEAREST SP_ATLAS_MIPMAP_NEAREST_NEAREST
  #define ATLAS_MIPMAP_LINEAR_NEAREST SP_ATLAS_MIPMAP_LINEAR_NEAREST
  #define ATLAS_MIPMAP_NEAREST_LINEAR SP_ATLAS_MIPMAP_NEAREST_LINEAR
  #define ATLAS_MIPMAP_LINEAR_LINEAR SP_ATLAS_MIPMAP_LINEAR_LINEAR
  typedef spAtlasWrap AtlasWrap;
  #define ATLAS_MIRROREDREPEAT SP_ATLAS_MIRROREDREPEAT
  #define ATLAS_CLAMPTOEDGE SP_ATLAS_CLAMPTOEDGE
  #define ATLAS_REPEAT SP_ATLAS_REPEAT
  typedef spAtlasPage AtlasPage;
  #define AtlasPage_create(...) spAtlasPage_create(__VA_ARGS__)
  #define AtlasPage_dispose(...) spAtlasPage_dispose(__VA_ARGS__)
  #endif
  
  /**/
  
  typedef struct spAtlasRegion spAtlasRegion;
  struct spAtlasRegion {
  	const char* name;
  	int x, y, width, height;
  	float u, v, u2, v2;
  	int offsetX, offsetY;
  	int originalWidth, originalHeight;
  	int index;
  	int/*bool*/rotate;
  	int/*bool*/flip;
  	int* splits;
  	int* pads;
  
  	spAtlasPage* page;
  
  	spAtlasRegion* next;
  };
  
  SP_API spAtlasRegion* spAtlasRegion_create ();
  SP_API void spAtlasRegion_dispose (spAtlasRegion* self);
  
  #ifdef SPINE_SHORT_NAMES
  typedef spAtlasRegion AtlasRegion;
  #define AtlasRegion_create(...) spAtlasRegion_create(__VA_ARGS__)
  #define AtlasRegion_dispose(...) spAtlasRegion_dispose(__VA_ARGS__)
  #endif
  
  /**/
  
  struct spAtlas {
  	spAtlasPage* pages;
  	spAtlasRegion* regions;
  
  	void* rendererObject;
  };
  
  /* Image files referenced in the atlas file will be prefixed with dir. */
  SP_API spAtlas* spAtlas_create (const char* data, int length, const char* dir, void* rendererObject);
  /* Image files referenced in the atlas file will be prefixed with the directory containing the atlas file. */
  SP_API spAtlas* spAtlas_createFromFile (const char* path, void* rendererObject);
  SP_API void spAtlas_dispose (spAtlas* atlas);
  
  /* Returns 0 if the region was not found. */
  SP_API spAtlasRegion* spAtlas_findRegion (const spAtlas* self, const char* name);
  
  #ifdef SPINE_SHORT_NAMES
  typedef spAtlas Atlas;
  #define Atlas_create(...) spAtlas_create(__VA_ARGS__)
  #define Atlas_createFromFile(...) spAtlas_createFromFile(__VA_ARGS__)
  #define Atlas_dispose(...) spAtlas_dispose(__VA_ARGS__)
  #define Atlas_findRegion(...) spAtlas_findRegion(__VA_ARGS__)
  #endif
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* SPINE_ATLAS_H_ */