@@ -128,6 +128,11 @@ -(instancetype)initWithOptions:(NSDictionary *)options
128128static CCBlendMode *CCBLEND_ADD = nil ;
129129static CCBlendMode *CCBLEND_MULTIPLY = nil ;
130130
131+ static CCBlendMode *CCBLEND_ADD_WITH_ALPHA = nil ;
132+ static CCBlendMode *CCBLEND_SCREEN = nil ;
133+ static CCBlendMode *CCBLEND_MULTIPLICATIVE = nil ;
134+ static CCBlendMode *CCBLEND_DODGE = nil ;
135+
131136NSDictionary *CCBLEND_DISABLED_OPTIONS = nil ;
132137
133138+(void )initialize
@@ -160,6 +165,26 @@ +(void)initialize
160165 CCBlendFuncSrcColor: @(GL_DST_COLOR),
161166 CCBlendFuncDstColor: @(GL_ZERO),
162167 }];
168+
169+ CCBLEND_ADD_WITH_ALPHA = [self blendModeWithOptions: @{
170+ CCBlendFuncSrcColor: @(GL_SRC_ALPHA),
171+ CCBlendFuncDstColor: @(GL_ZERO),
172+ }];
173+
174+ CCBLEND_SCREEN = [self blendModeWithOptions: @{
175+ CCBlendFuncSrcColor: @(GL_ONE_MINUS_DST_COLOR),
176+ CCBlendFuncDstColor: @(GL_ONE),
177+ }];
178+
179+ CCBLEND_MULTIPLICATIVE = [self blendModeWithOptions: @{
180+ CCBlendFuncSrcColor: @(GL_DST_COLOR),
181+ CCBlendFuncDstColor: @(GL_ONE_MINUS_SRC_ALPHA),
182+ }];
183+
184+ CCBLEND_DODGE = [self blendModeWithOptions: @{
185+ CCBlendFuncSrcColor: @(GL_ONE_MINUS_SRC_ALPHA),
186+ CCBlendFuncDstColor: @(GL_ONE),
187+ }];
163188}
164189
165190+(void )flushCache
@@ -197,6 +222,26 @@ +(CCBlendMode *)multiplyMode
197222 return CCBLEND_MULTIPLY;
198223}
199224
225+ +(CCBlendMode *)multiplicativeMode
226+ {
227+ return CCBLEND_MULTIPLICATIVE;
228+ }
229+
230+ +(CCBlendMode *)addWithAlphaMode
231+ {
232+ return CCBLEND_ADD_WITH_ALPHA;
233+ }
234+
235+ +(CCBlendMode *)screenMode
236+ {
237+ return CCBLEND_SCREEN;
238+ }
239+
240+ +(CCBlendMode *)dodgeMode
241+ {
242+ return CCBLEND_DODGE;
243+ }
244+
200245@end
201246
202247
0 commit comments