public PointsGisLayerCPU(Game game, int maxPointsCount, bool isDynamic = true) : base(game) { PointsCountToDraw = maxPointsCount; indeces = new int[maxPointsCount*6]; PointsDrawOffset = 0; SizeMultiplier = 1; var vbOptions = isDynamic ? VertexBufferOptions.Dynamic : VertexBufferOptions.Default; currentBuffer = new VertexBuffer(Game.GraphicsDevice, typeof(Gis.CartPoint), maxPointsCount * 4, vbOptions); PointsCpu = new Gis.CartPoint[maxPointsCount*4]; indBuf = new IndexBuffer(Game.GraphicsDevice, indeces.Length); for (int i = 0; i < maxPointsCount; i += 1) { indeces[i*6 + 0] = i*4 + 0; indeces[i*6 + 1] = i*4 + 1; indeces[i*6 + 2] = i*4 + 2; indeces[i*6 + 3] = i*4 + 1; indeces[i*6 + 4] = i*4 + 3; indeces[i*6 + 5] = i*4 + 2; } indBuf.SetData(indeces); shader = Game.Content.Load<Ubershader>("globe.Debug.hlsl"); factory = shader.CreateFactory(typeof(PointFlags), Primitive.TriangleList, VertexInputElement.FromStructure<Gis.CartPoint>(), BlendState.AlphaBlend, RasterizerState.CullCW, DepthStencilState.None); }
public DebugGisLayer(Game game) : base(game) { shader = game.Content.Load<Ubershader>("globe.Debug.hlsl"); factory = shader.CreateFactory(typeof(DebugFlags), Primitive.LineList, VertexInputElement.FromStructure<Gis.CartPoint>(), BlendState.AlphaBlend, RasterizerState.CullCW, DepthStencilState.Default); buf = new VertexBuffer(Game.GraphicsDevice, typeof(Gis.CartPoint), 10000, VertexBufferOptions.Dynamic); boxes = new List<Gis.CartPoint>(); lines = new List<Gis.CartPoint>(); }
public TilesGisLayer(Game engine, GlobeCamera camera) : base(engine) { RegisterMapSources(); CurrentMapSource = MapSources[9]; this.camera = camera; frame = Game.Content.Load<Texture2D>("redframe.tga"); shader = Game.Content.Load<Ubershader>("globe.Tile.hlsl"); factory = shader.CreateFactory( typeof(TileFlags), Primitive.TriangleList, VertexInputElement.FromStructure<Gis.GeoPoint>(), BlendState.AlphaBlend, RasterizerState.CullCW, DepthStencilState.Default); }
/// <summary> /// Initialization /// </summary> public override void Initialize () { var dev = Game.GraphicsDevice; effect = Game.Content.Load<Ubershader>("debugRender.hlsl"); factory = effect.CreateFactory( typeof(RenderFlags), Primitive.LineList, VertexInputElement.FromStructure( typeof(LineVertex) ), BlendState.AlphaBlend, RasterizerState.CullNone ); constData = new ConstData(); constBuffer = new ConstantBuffer(dev, typeof(ConstData)); // create vertex buffer : vertexBuffer = new VertexBuffer(dev, typeof(LineVertex), vertexBufferSize, VertexBufferOptions.Dynamic ); vertexDataAccum.Capacity = vertexBufferSize; }
/// <summary> /// /// </summary> void LoadContent () { shader = Game.Content.Load<Ubershader>("hdr"); factory = shader.CreateFactory( typeof(Flags), Primitive.TriangleList, VertexInputElement.Empty, BlendState.Opaque, RasterizerState.CullNone, DepthStencilState.None ); }
public PointsGisLayer(Game engine, int maxPointsCount, bool isDynamic = false) : base(engine) { DotsBuffer = new ConstantBuffer(engine.GraphicsDevice, typeof(DotsData)); ColorBuffer = new ConstantBuffer(engine.GraphicsDevice, typeof(ColorData), 16); PointsCountToDraw = maxPointsCount; PointsDrawOffset = 0; SizeMultiplier = 1; IsDynamic = isDynamic; var vbOptions = isDynamic ? VertexBufferOptions.Dynamic : VertexBufferOptions.Default; firstBuffer = new VertexBuffer(engine.GraphicsDevice, typeof(Gis.GeoPoint), maxPointsCount, vbOptions); currentBuffer = firstBuffer; PointsCpu = new Gis.GeoPoint[maxPointsCount]; Flags = (int) (PointFlags.DOTS_WORLDSPACE); shader = Game.Content.Load<Ubershader>("globe.Point.hlsl"); factory = shader.CreateFactory( typeof(PointFlags), Primitive.PointList, VertexInputElement.FromStructure<Gis.GeoPoint>(), BlendState.AlphaBlend, RasterizerState.CullCCW, DepthStencilState.None); ColorDatas = new ColorData[16]; for (int i = 0; i < ColorDatas.Length; i++) { ColorDatas[i] = new ColorData {Color = Color.White}; } ColorBuffer.SetData(ColorDatas); }
/// <summary> /// /// </summary> void LoadContent () { surfaceShader = Game.Content.Load<Ubershader>("surface"); factory = surfaceShader.CreateFactory( typeof(SurfaceFlags), (ps,i) => Enum(ps, (SurfaceFlags)i ) ); }
void LoadContent () { shader = device.Game.Content.Load<Ubershader>("sprite"); factory = shader.CreateFactory( typeof(Flags), (ps,i) => StateEnum( ps, (Flags)i) ); }
public LinesGisLayer(Game engine, int linesPointsCount, bool isDynamic = false) : base(engine) { shader = Game.Content.Load<Ubershader>("globe.Line.hlsl"); factory = shader.CreateFactory( typeof(LineFlags), Primitive.LineList, VertexInputElement.FromStructure<Gis.GeoPoint>(), BlendState.AlphaBlend, RasterizerState.CullNone, DepthStencilState.None); thinFactory = shader.CreateFactory( typeof(LineFlags), Primitive.LineList, VertexInputElement.FromStructure<Gis.GeoPoint>(), BlendState.AlphaBlend, RasterizerState.CullNone, DepthStencilState.Readonly); TransparencyMultiplayer = 1.0f; OverallColor = Color4.White; linesConstantBuffer = new ConstantBuffer(engine.GraphicsDevice, typeof(LinesConstDataStruct)); //linesConstantBuffer.SetData(linesConstData); var vbOptions = isDynamic ? VertexBufferOptions.Dynamic : VertexBufferOptions.Default; firstBuffer = new VertexBuffer(engine.GraphicsDevice, typeof(Gis.GeoPoint), linesPointsCount, vbOptions); currentBuffer = firstBuffer; PointsCpu = new Gis.GeoPoint[linesPointsCount]; Flags = (int)(LineFlags.ARC_LINE); }
/// <summary> /// /// </summary> void LoadContent () { sky = Game.Content.Load<Ubershader>("sky"); factory = sky.CreateFactory( typeof(SkyFlags), (ps,i) => EnumFunc(ps, (SkyFlags)i) ); }
/// <summary> /// /// </summary> void LoadContent () { shader = Game.Content.Load<Ubershader>("dof"); factory = shader.CreateFactory( typeof(Flags), (ps,i) => EnumAction(ps, (Flags)i ) ); }
/// <summary> /// /// </summary> void LoadContent () { shader = Game.Content.Load<Ubershader>("bitonicSort"); factory = shader.CreateFactory( typeof(ShaderFlags), Primitive.TriangleList, VertexInputElement.Empty ); }
public ModelLayer(Game engine, DVector2 lonLatPosition, string fileName, int maxInstancedCount = 0) : base(engine) { model = engine.Content.Load<Scene>(fileName); transforms = new Matrix[model.Nodes.Count]; model.ComputeAbsoluteTransforms(transforms); LonLatPosition = lonLatPosition; Transparency = 1.0f; constData = new ConstDataStruct(); modelBuf = new ConstantBuffer(Game.GraphicsDevice, typeof(ConstDataStruct)); shader = Game.Content.Load<Ubershader>("globe.Model.hlsl"); factory = shader.CreateFactory( typeof(ModelFlags), Primitive.TriangleList, VertexInputElement.FromStructure<VertexColorTextureTBNRigid>(), BlendState.AlphaBlend, RasterizerState.CullCW, DepthStencilState.Default); factoryXray = shader.CreateFactory( typeof(ModelFlags), Primitive.TriangleList, VertexInputElement.FromStructure<VertexColorTextureTBNRigid>(), BlendState.AlphaBlend, RasterizerState.CullCW, DepthStencilState.Default); if (maxInstancedCount > 0) { InstancedCountToDraw = maxInstancedCount; InstancedDataCPU = new InstancedDataStruct[maxInstancedCount]; instDataGpu = new StructuredBuffer(engine.GraphicsDevice, typeof(InstancedDataStruct), maxInstancedCount, StructuredBufferFlags.None); } selectInfo = new SelectInfo[model.Nodes.Count]; for (int i = 0; i < model.Nodes.Count; i++) { var meshindex = model.Nodes[i].MeshIndex; if (meshindex < 0) continue; selectInfo[i] = new SelectInfo { BoundingBox = model.Meshes[meshindex].ComputeBoundingBox(), MeshIndex = meshindex, NodeIndex = i, NodeName = model.Nodes[i].Name }; } }
protected void Initialize(Gis.GeoPoint[] points, int[] indeces, bool isDynamic) { shader = Game.Content.Load<Ubershader>("globe.Poly.hlsl"); factory = shader.CreateFactory(typeof(PolyFlags), EnumFunc); factoryXray = shader.CreateFactory(typeof(PolyFlags), Primitive.TriangleList, VertexInputElement.FromStructure<Gis.GeoPoint>(), BlendState.Additive, RasterizerState.CullCW, DepthStencilState.None); var vbOptions = isDynamic ? VertexBufferOptions.Dynamic : VertexBufferOptions.Default; firstBuffer = new VertexBuffer(Game.GraphicsDevice, typeof(Gis.GeoPoint), points.Length, vbOptions); firstBuffer.SetData(points); currentBuffer = firstBuffer; indexBuffer = new IndexBuffer(Game.Instance.GraphicsDevice, indeces.Length); indexBuffer.SetData(indeces); PointsCpu = points; cb = new ConstantBuffer(Game.GraphicsDevice, typeof(ConstData)); constData = new ConstData(); constData.Data = Vector4.One; }
/// <summary> /// Loads content /// </summary> void LoadContent ( object sender, EventArgs args ) { shader = rs.Game.Content.Load<Ubershader>("particles.hlsl"); factory = shader.CreateFactory( typeof(Flags), (ps,i) => EnumAction( ps, (Flags)i ) ); }
/// <summary> /// /// </summary> void LoadContent () { shaders = Game.Content.Load<Ubershader>( "filter" ); factory = shaders.CreateFactory( typeof(ShaderFlags), (ps,i) => Enum(ps, (ShaderFlags)i) ); }
/// <summary> /// /// </summary> void LoadContent () { lightingShader = Game.Content.Load<Ubershader>("lighting"); factory = lightingShader.CreateFactory( typeof(LightingFlags), Primitive.TriangleList, VertexInputElement.Empty ); }