public void Paint(Texture2D newCanvas, P3D_Matrix newMatrix) { canvas = newCanvas; canvasW = newCanvas.width; canvasH = newCanvas.height; matrix = newMatrix; if (this.CalculateRect(ref rect)) { inverse = newMatrix.Inverse; opacity = this.Opacity; color = this.Color; direction = this.Direction; shape = this.Shape; detail = this.Detail; detailScale = this.DetailScale; if (OnPrePaint != null) { OnPrePaint(canvas, rect); } switch (this.Blend) { case P3D_BlendMode.AlphaBlend: AlphaBlend.Paint(); break; case P3D_BlendMode.AlphaBlendRgb: AlphaBlendRGB.Paint(); break; case P3D_BlendMode.AlphaErase: AlphaErase.Paint(); break; case P3D_BlendMode.AdditiveBlend: AdditiveBlend.Paint(); break; case P3D_BlendMode.SubtractiveBlend: SubtractiveBlend.Paint(); break; case P3D_BlendMode.NormalBlend: NormalBlend.Paint(); break; case P3D_BlendMode.Replace: Replace.Paint(); break; default: break; } if (OnPostPaint != null) { OnPostPaint(canvas, rect); } } }
public BaseLayerDescriptor(ILayerProfile profile) { // defaults AlphaBlend = new AlphaBlend(); ErosionDescriptor = new ErosionDescriptor(); Profile = profile; }
public async Task Compose(IWorld w) { var param = w.Parameters; var fields = w.Fields; var pars = await generateFields(param, fields); IErosionDescriptor bs; ILayerMasked baseLayer; IBlendModeAlpha ba; if (w.UseBase) { var bsd = _describer.DescribeBaseLayer(param, w.BaseField); //baseLayer = await bsd.LayerGlobalParameters.Profile baseLayer = await bsd.LayerGlobalParameters.Generator.GenerateLayer(); //_layerUtils.Normalize(baseLayer); //HACK baselayers mask extend it size var x = new Layer2DObject(w.Parameters.BitmapResolution); _layerUtils.IterateValues(x, (v, val) => x[v] = baseLayer[v]); baseLayer = x; ba = bsd.AlphaBlend; bs = bsd; } else { baseLayer = new Layer2DObject(w.Parameters.BitmapResolution); baseLayer.Mask = new Mask(baseLayer.Resolution); _layerUtils.IterateValues(baseLayer.Mask, (v, val) => baseLayer[v] = 1); setUpDefaulValue(baseLayer); bs = new ErosionDescriptor(); ba = new AlphaBlend(); } bs.HydraulicErosionParams.Strenght = param.ErosionStrength * strengthMultpilier; ILayerMasked merged = merge(ba, baseLayer, pars); //_layerUtils.FitInto(merged, 0, 1); postProcessWholeLayer(merged, bs, w.Parameters.RiverAmount); ComposedLayer = merged; }
internal ShaderPassImplementationBlockBase(BinaryReader binaryReader) { this.flags = (Flags)binaryReader.ReadInt16(); this.invalidName_ = binaryReader.ReadBytes(2); this.textures = ReadShaderPassTextureBlockArray(binaryReader); this.vertexShader = binaryReader.ReadTagReference(); this.vsConstants = ReadShaderPassVertexShaderConstantBlockArray(binaryReader); this.pixelShaderCodeNOLONGERUSED = ReadData(binaryReader); this.channels = (Channels)binaryReader.ReadInt16(); this.alphaBlend = (AlphaBlend)binaryReader.ReadInt16(); this.depth = (Depth)binaryReader.ReadInt16(); this.invalidName_0 = binaryReader.ReadBytes(2); this.channelState = ReadShaderStateChannelsStateBlockArray(binaryReader); this.alphaBlendState = ReadShaderStateAlphaBlendStateBlockArray(binaryReader); this.alphaTestState = ReadShaderStateAlphaTestStateBlockArray(binaryReader); this.depthState = ReadShaderStateDepthStateBlockArray(binaryReader); this.cullState = ReadShaderStateCullStateBlockArray(binaryReader); this.fillState = ReadShaderStateFillStateBlockArray(binaryReader); this.miscState = ReadShaderStateMiscStateBlockArray(binaryReader); this.constants = ReadShaderStateConstantBlockArray(binaryReader); this.pixelShader = binaryReader.ReadTagReference(); }
/// <summary> /// C#のコードを返す /// </summary> /// <returns>この追加描画を実装するC#のコード</returns> public override string ToCSharp() => $"DrawTriangleAdditionally({CSharpCodeProvider.FromVector2DF(Position1)}, {CSharpCodeProvider.FromVector2DF(Position2)}, {CSharpCodeProvider.FromVector2DF(Position3)}, {CSharpCodeProvider.FromColor(Color)}, {CSharpCodeProvider.FromVector2DF(UV1)}, {CSharpCodeProvider.FromVector2DF(UV2)}, {CSharpCodeProvider.FromVector2DF(UV3)}, {CSharpCodeProvider.FromTexture(Texture)}, AlphaBlendMode.{AlphaBlend.ToString()}, {DrawingPriority}); // {Name}";
/// <summary> /// C#のコードを返す /// </summary> /// <returns>この追加描画を実装するC#のコード</returns> public override string ToCSharp() => $"DrawTextAdditionally({CSharpCodeProvider.FromVector2DF(Position)}, {CSharpCodeProvider.FromColor(Color)}, {CSharpCodeProvider.FromFont(FontInfo)}, {Text}, WritingDirection.{WritingDirection.ToString()}, AlphaBlendMode.{AlphaBlend.ToString()}, {DrawingPriority}); // {Name}";
/// <summary> /// C#のコードを返す /// </summary> /// <returns>この追加描画を実装するC#のコード</returns> public override string ToCSharp() => $"DrawSpriteAdditionally({CSharpCodeProvider.FromVector2DF(UpperLeftPos)}, {CSharpCodeProvider.FromVector2DF(UpperRightPos)}, {CSharpCodeProvider.FromVector2DF(LowerRightPos)}, {CSharpCodeProvider.FromVector2DF(LowerLeftPos)}, {CSharpCodeProvider.FromColor(UpperLeftColor)}, {CSharpCodeProvider.FromColor(UpperRightColor)}, {CSharpCodeProvider.FromColor(LowerRightColor)}, {CSharpCodeProvider.FromColor(LowerLeftColor)}, {CSharpCodeProvider.FromVector2DF(UpperLeftUV)}, {CSharpCodeProvider.FromVector2DF(UpperRightUV)}, {CSharpCodeProvider.FromVector2DF(LowerRightUV)}, {CSharpCodeProvider.FromVector2DF(LowerLeftUV)}, {CSharpCodeProvider.FromTexture(Texture)}, AlphaBlendMode.{AlphaBlend.ToString()}, {DrawingPriority}); // {Name}";
/// <summary> /// C#のコードを返す /// </summary> /// <returns>この追加描画を実装するC#のコード</returns> public override string ToCSharp() => $"DrawRotatedRectangleAdditionally({CSharpCodeProvider.FromRectF(DrawingArea)}, {CSharpCodeProvider.FromColor(Color)}, {CSharpCodeProvider.FromVector2DF(RotationCenter)}, {Angle}, {CSharpCodeProvider.FromRectF(UV)}, {CSharpCodeProvider.FromTexture(Texture)}, AlphaBlendMode.{AlphaBlend.ToString()}, {DrawingPriority}); // {Name}";
/// <summary> /// C#のコードを返す /// </summary> /// <returns>この追加描画を実装するC#のコード</returns> public override string ToCSharp() => $"DrawLineAdditionally({CSharpCodeProvider.FromVector2DF(Point1)}, {CSharpCodeProvider.FromVector2DF(Point2)}, {Thickness}, {CSharpCodeProvider.FromColor(Color)}, AlphaBlendMode.{AlphaBlend.ToString()}, {DrawingPriority}); // {Name}";
/// <summary> /// C#のコードを返す /// </summary> /// <returns>この追加描画を実装するC#のコード</returns> public override string ToCSharp() => $"DrawCircleAdditionally({CSharpCodeProvider.FromVector2DF(Center)}, {OuterDiameter}, {InnerDiameter}, {CSharpCodeProvider.FromColor(Color)}, {VertNum}, {Angle}, {CSharpCodeProvider.FromTexture(Texture)}, AlphaBlendMode.{AlphaBlend.ToString()}, {DrawingPriority}); // {Name}";