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
#include "fsIRenderCommand.h"


void fsIRendererCommand::blendDescriptorSetup(cocos2d::PipelineDescriptor& pipelineDescriptor)
{
	cocos2d::backend::BlendDescriptor& blendDescriptor = pipelineDescriptor.blendDescriptor;
	blendDescriptor.blendEnabled = true;
	if (_blendFunc == cocos2d::BlendFunc::ALPHA_NON_PREMULTIPLIED)
	{
		blendDescriptor.sourceRGBBlendFactor = cocos2d::backend::BlendFactor::SRC_ALPHA;
		blendDescriptor.destinationRGBBlendFactor = cocos2d::backend::BlendFactor::ONE_MINUS_SRC_ALPHA;
		blendDescriptor.sourceAlphaBlendFactor = cocos2d::backend::BlendFactor::SRC_ALPHA;
		blendDescriptor.destinationAlphaBlendFactor = cocos2d::backend::BlendFactor::ONE_MINUS_SRC_ALPHA;
	}
	else if (_blendFunc == cocos2d::BlendFunc::ALPHA_PREMULTIPLIED)
	{
		blendDescriptor.sourceRGBBlendFactor = cocos2d::backend::BlendFactor::ONE;
		blendDescriptor.destinationRGBBlendFactor = cocos2d::backend::BlendFactor::ONE_MINUS_SRC_ALPHA;
		blendDescriptor.sourceAlphaBlendFactor = cocos2d::backend::BlendFactor::ONE;
		blendDescriptor.destinationAlphaBlendFactor = cocos2d::backend::BlendFactor::ONE_MINUS_SRC_ALPHA;
	}
	else //if (_blendFunc == cocos2d::BlendFunc::ADDITIVE)
	{
		blendDescriptor.sourceRGBBlendFactor = cocos2d::backend::BlendFactor::ONE;
		blendDescriptor.destinationRGBBlendFactor = cocos2d::backend::BlendFactor::ONE_MINUS_SRC_ALPHA;
		blendDescriptor.sourceAlphaBlendFactor = cocos2d::backend::BlendFactor::ONE;
		blendDescriptor.destinationAlphaBlendFactor = cocos2d::backend::BlendFactor::ONE_MINUS_SRC_ALPHA;
	}
}

fsIRendererCommand::fsIRendererCommand()
{
}

fsIRendererCommand::~fsIRendererCommand()
{
}