149 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			149 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha.graphics4; | ||
|  | 
 | ||
|  | class PipelineStateBase { | ||
|  | 	public function new() { | ||
|  | 		inputLayout = null; | ||
|  | 		vertexShader = null; | ||
|  | 		fragmentShader = null; | ||
|  | 		geometryShader = null; | ||
|  | 		tessellationControlShader = null; | ||
|  | 		tessellationEvaluationShader = null; | ||
|  | 
 | ||
|  | 		cullMode = CullMode.None; | ||
|  | 
 | ||
|  | 		depthWrite = false; | ||
|  | 		depthMode = CompareMode.Always; | ||
|  | 
 | ||
|  | 		stencilFrontMode = CompareMode.Always; | ||
|  | 		stencilFrontBothPass = StencilAction.Keep; | ||
|  | 		stencilFrontDepthFail = StencilAction.Keep; | ||
|  | 		stencilFrontFail = StencilAction.Keep; | ||
|  | 
 | ||
|  | 		stencilBackMode = CompareMode.Always; | ||
|  | 		stencilBackBothPass = StencilAction.Keep; | ||
|  | 		stencilBackDepthFail = StencilAction.Keep; | ||
|  | 		stencilBackFail = StencilAction.Keep; | ||
|  | 
 | ||
|  | 		stencilReferenceValue = Static(0); | ||
|  | 		stencilReadMask = 0xff; | ||
|  | 		stencilWriteMask = 0xff; | ||
|  | 
 | ||
|  | 		blendSource = BlendingFactor.BlendOne; | ||
|  | 		blendDestination = BlendingFactor.BlendZero; | ||
|  | 		blendOperation = BlendingOperation.Add; | ||
|  | 		alphaBlendSource = BlendingFactor.BlendOne; | ||
|  | 		alphaBlendDestination = BlendingFactor.BlendZero; | ||
|  | 		alphaBlendOperation = BlendingOperation.Add; | ||
|  | 
 | ||
|  | 		colorWriteMasksRed = []; | ||
|  | 		colorWriteMasksGreen = []; | ||
|  | 		colorWriteMasksBlue = []; | ||
|  | 		colorWriteMasksAlpha = []; | ||
|  | 		for (i in 0...8) | ||
|  | 			colorWriteMasksRed.push(true); | ||
|  | 		for (i in 0...8) | ||
|  | 			colorWriteMasksGreen.push(true); | ||
|  | 		for (i in 0...8) | ||
|  | 			colorWriteMasksBlue.push(true); | ||
|  | 		for (i in 0...8) | ||
|  | 			colorWriteMasksAlpha.push(true); | ||
|  | 
 | ||
|  | 		colorAttachmentCount = 1; | ||
|  | 		colorAttachments = []; | ||
|  | 		for (i in 0...8) | ||
|  | 			colorAttachments.push(TextureFormat.RGBA32); | ||
|  | 
 | ||
|  | 		depthStencilAttachment = DepthStencilFormat.NoDepthAndStencil; | ||
|  | 
 | ||
|  | 		conservativeRasterization = false; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public var inputLayout: Array<VertexStructure>; | ||
|  | 	public var vertexShader: VertexShader; | ||
|  | 	public var fragmentShader: FragmentShader; | ||
|  | 	public var geometryShader: GeometryShader; | ||
|  | 	public var tessellationControlShader: TessellationControlShader; | ||
|  | 	public var tessellationEvaluationShader: TessellationEvaluationShader; | ||
|  | 
 | ||
|  | 	public var cullMode: CullMode; | ||
|  | 
 | ||
|  | 	public var depthWrite: Bool; | ||
|  | 	public var depthMode: CompareMode; | ||
|  | 
 | ||
|  | 	public var stencilFrontMode: CompareMode; | ||
|  | 	public var stencilFrontBothPass: StencilAction; | ||
|  | 	public var stencilFrontDepthFail: StencilAction; | ||
|  | 	public var stencilFrontFail: StencilAction; | ||
|  | 
 | ||
|  | 	public var stencilBackMode: CompareMode; | ||
|  | 	public var stencilBackBothPass: StencilAction; | ||
|  | 	public var stencilBackDepthFail: StencilAction; | ||
|  | 	public var stencilBackFail: StencilAction; | ||
|  | 
 | ||
|  | 	public var stencilReferenceValue: StencilValue; | ||
|  | 	public var stencilReadMask: Int; | ||
|  | 	public var stencilWriteMask: Int; | ||
|  | 
 | ||
|  | 	// One, Zero deactivates blending | ||
|  | 	public var blendSource: BlendingFactor; | ||
|  | 	public var blendDestination: BlendingFactor; | ||
|  | 	public var blendOperation: BlendingOperation; | ||
|  | 	public var alphaBlendSource: BlendingFactor; | ||
|  | 	public var alphaBlendDestination: BlendingFactor; | ||
|  | 	public var alphaBlendOperation: BlendingOperation; | ||
|  | 
 | ||
|  | 	public var colorWriteMask(never, set): Bool; | ||
|  | 	public var colorWriteMaskRed(get, set): Bool; | ||
|  | 	public var colorWriteMaskGreen(get, set): Bool; | ||
|  | 	public var colorWriteMaskBlue(get, set): Bool; | ||
|  | 	public var colorWriteMaskAlpha(get, set): Bool; | ||
|  | 
 | ||
|  | 	public var colorWriteMasksRed: Array<Bool>; | ||
|  | 	public var colorWriteMasksGreen: Array<Bool>; | ||
|  | 	public var colorWriteMasksBlue: Array<Bool>; | ||
|  | 	public var colorWriteMasksAlpha: Array<Bool>; | ||
|  | 
 | ||
|  | 	public var colorAttachmentCount: Int; | ||
|  | 	public var colorAttachments: Array<TextureFormat>; | ||
|  | 
 | ||
|  | 	public var depthStencilAttachment: DepthStencilFormat; | ||
|  | 
 | ||
|  | 	inline function set_colorWriteMask(value: Bool): Bool { | ||
|  | 		return colorWriteMaskRed = colorWriteMaskBlue = colorWriteMaskGreen = colorWriteMaskAlpha = value; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	inline function get_colorWriteMaskRed(): Bool { | ||
|  | 		return colorWriteMasksRed[0]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	inline function set_colorWriteMaskRed(value: Bool): Bool { | ||
|  | 		return colorWriteMasksRed[0] = value; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	inline function get_colorWriteMaskGreen(): Bool { | ||
|  | 		return colorWriteMasksGreen[0]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	inline function set_colorWriteMaskGreen(value: Bool): Bool { | ||
|  | 		return colorWriteMasksGreen[0] = value; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	inline function get_colorWriteMaskBlue(): Bool { | ||
|  | 		return colorWriteMasksBlue[0]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	inline function set_colorWriteMaskBlue(value: Bool): Bool { | ||
|  | 		return colorWriteMasksBlue[0] = value; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	inline function get_colorWriteMaskAlpha(): Bool { | ||
|  | 		return colorWriteMasksAlpha[0]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	inline function set_colorWriteMaskAlpha(value: Bool): Bool { | ||
|  | 		return colorWriteMasksAlpha[0] = value; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public var conservativeRasterization: Bool; | ||
|  | } |