public CreateDynamicVertexBuffer ( |
||
vd | ||
s | int | |
usage | BufferUsage | |
Результат | DynamicVertexBuffer |
public void Hook(RTSRenderer renderer, GameState s, int ti, int unit) { // Filter For Unit Types RTSTeam team = s.teams[ti]; Data = team.Race.Units[unit]; // Always Add A Unit To List When Spawned team.OnUnitSpawn += OnUnitSpawn; // Create Instance Buffer visible = new List <RTSUnit>(); instVerts = new VertexRTSAnimInst[Data.MaxCount]; instances = new List <RTSUnit>(Data.MaxCount); dead = new List <RTSUnit>(); for (int i = 0; i < team.Units.Count; i++) { OnUnitSpawn(team.Units[i]); } for (int i = 0; i < instVerts.Length; i++) { instVerts[i] = new VertexRTSAnimInst(Matrix.Identity, 0); } dvbInstances = renderer.CreateDynamicVertexBuffer(VertexRTSAnimInst.Declaration, instVerts.Length, BufferUsage.WriteOnly); dvbInstances.SetData(instVerts); dvbInstances.ContentLost += (sender, args) => { rebuildDVB = true; }; rebuildDVB = false; }
public ParticleList(RTSRenderer renderer, int maxCount, ParticleType pt) { Type = pt; // Make The Lists particles = new List <PType>(); vertices = new VType[maxCount]; // Create The Instance Buffer InstanceBuffer = renderer.CreateDynamicVertexBuffer(vertices[0].VertexDeclaration, MaxCount, BufferUsage.WriteOnly); InstanceBuffer.SetData(vertices); VBBinds = new VertexBufferBinding[2]; VBBinds[1] = new VertexBufferBinding(InstanceBuffer, 0, 1); }
public void Build(RTSRenderer renderer, RTSFXEntity fx, string technique, string pass, string texture) { vb = renderer.CreateVertexBuffer(VertexPositionTexture.VertexDeclaration, 4, BufferUsage.WriteOnly); vb.SetData(new VertexPositionTexture[] { new VertexPositionTexture(new Vector3(-1, 0, -1), Vector2.Zero), new VertexPositionTexture(new Vector3(1, 0, -1), Vector2.UnitX), new VertexPositionTexture(new Vector3(-1, 0, 1), Vector2.UnitY), new VertexPositionTexture(new Vector3(1, 0, 1), Vector2.One) }); ib = renderer.CreateIndexBuffer(IndexElementSize.ThirtyTwoBits, 6, BufferUsage.WriteOnly); ib.SetData(new int[] { 0, 1, 2, 2, 1, 3 }); dvb = renderer.CreateDynamicVertexBuffer(VertexHealthInstance.Declaration, MAX_COUNT, BufferUsage.WriteOnly); instances = new VertexHealthInstance[MAX_COUNT]; vbBinds = new VertexBufferBinding[]{ new VertexBufferBinding(vb), new VertexBufferBinding(dvb, 0, 1) }; fxPass = fx.GetEffectPass(technique, pass); }
public void Build(RTSRenderer renderer, RTSFXEntity fx, string technique, string pass, string texture) { vb = renderer.CreateVertexBuffer(VertexPositionTexture.VertexDeclaration, 4, BufferUsage.WriteOnly); vb.SetData(new VertexPositionTexture[] { new VertexPositionTexture(new Vector3(-1, 0, -1), Vector2.Zero), new VertexPositionTexture(new Vector3(1, 0, -1), Vector2.UnitX), new VertexPositionTexture(new Vector3(-1, 0, 1), Vector2.UnitY), new VertexPositionTexture(new Vector3(1, 0, 1), Vector2.One) }); ib = renderer.CreateIndexBuffer(IndexElementSize.ThirtyTwoBits, 6, BufferUsage.WriteOnly); ib.SetData(new int[] { 0, 1, 2, 2, 1, 3 }); dvb = renderer.CreateDynamicVertexBuffer(VertexHealthInstance.Declaration, MAX_COUNT, BufferUsage.WriteOnly); instances = new VertexHealthInstance[MAX_COUNT]; vbBinds = new VertexBufferBinding[] { new VertexBufferBinding(vb), new VertexBufferBinding(dvb, 0, 1) }; fxPass = fx.GetEffectPass(technique, pass); }
public void Hook(RTSRenderer renderer, GameState s, int ti, int fti, int building) { // Filter For Unit Types RTSTeam team = s.teams[ti]; Data = team.Race.Buildings[building]; fTeam = s.teams[fti]; eTeamIndex = ti; fTeamIndex = fti; bType = building; // Create Instance Buffer visible = new List <VisibleBuilding>(); instVerts = new VertexRTSAnimInst[Data.MaxCount]; for (int i = 0; i < instVerts.Length; i++) { instVerts[i] = new VertexRTSAnimInst(Matrix.Identity, 1); } dvbInstances = renderer.CreateDynamicVertexBuffer(VertexRTSAnimInst.Declaration, instVerts.Length, BufferUsage.WriteOnly); dvbInstances.SetData(instVerts); dvbInstances.ContentLost += (sender, args) => { rebuildDVB = true; }; rebuildDVB = false; }
public void Hook(RTSRenderer renderer, GameState s, int ti, int unit) { // Filter For Unit Types RTSTeam team = s.teams[ti]; Data = team.Race.Units[unit]; // Always Add A Unit To List When Spawned team.OnUnitSpawn += OnUnitSpawn; // Create Instance Buffer visible = new List<RTSUnit>(); instVerts = new VertexRTSAnimInst[Data.MaxCount]; instances = new List<RTSUnit>(Data.MaxCount); dead = new List<RTSUnit>(); for(int i = 0; i < team.Units.Count; i++) { OnUnitSpawn(team.Units[i]); } for(int i = 0; i < instVerts.Length; i++) instVerts[i] = new VertexRTSAnimInst(Matrix.Identity, 0); dvbInstances = renderer.CreateDynamicVertexBuffer(VertexRTSAnimInst.Declaration, instVerts.Length, BufferUsage.WriteOnly); dvbInstances.SetData(instVerts); dvbInstances.ContentLost += (sender, args) => { rebuildDVB = true; }; rebuildDVB = false; }
public void Hook(RTSRenderer renderer, GameState s, int ti, int fti, int building) { // Filter For Unit Types RTSTeam team = s.teams[ti]; Data = team.Race.Buildings[building]; fTeam = s.teams[fti]; eTeamIndex = ti; fTeamIndex = fti; bType = building; // Create Instance Buffer visible = new List<VisibleBuilding>(); instVerts = new VertexRTSAnimInst[Data.MaxCount]; for(int i = 0; i < instVerts.Length; i++) instVerts[i] = new VertexRTSAnimInst(Matrix.Identity, 1); dvbInstances = renderer.CreateDynamicVertexBuffer(VertexRTSAnimInst.Declaration, instVerts.Length, BufferUsage.WriteOnly); dvbInstances.SetData(instVerts); dvbInstances.ContentLost += (sender, args) => { rebuildDVB = true; }; rebuildDVB = false; }