Guest User

Untitled

a guest
Jul 19th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. using System;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. using Microsoft.DirectX;
  5. using Microsoft.DirectX.Direct3D;
  6.  
  7. class Initialize
  8. {
  9. Form target;
  10. Device device;
  11. PresentParameters pp;
  12. VertexBuffer vb;
  13.  
  14. Bitmap goo = (Bitmap)Image.FromFile("grass.bmp");
  15. Bitmap soo = (Bitmap)Image.FromFile("stone.bmp");
  16. Texture grass;
  17. Texture stone;
  18.  
  19. public void initializeGraphics(Form window)
  20. {
  21. this.target = window;
  22. this.target.ClientSize = new Size(800, 600);
  23. this.target.StartPosition = FormStartPosition.CenterScreen;
  24.  
  25. setupDevice();
  26. }
  27.  
  28. public void setupDevice()
  29. {
  30. pp = new PresentParameters();
  31. pp.Windowed = true;
  32. pp.SwapEffect = SwapEffect.Discard;
  33.  
  34. device = new Device(0, DeviceType.Hardware, target, CreateFlags.HardwareVertexProcessing, pp);
  35. device.RenderState.Lighting = false;
  36. device.RenderState.CullMode = Cull.None;
  37. device.RenderState.AlphaBlendEnable = true;
  38.  
  39. Vector3 cameraPosition = new Vector3(0, 0, -2);
  40. Vector3 cameraTarget = new Vector3(0, 0, 0);
  41. Vector3 cameraUp = new Vector3(0, 1, 0);
  42.  
  43. device.Transform.View = Matrix.LookAtLH(cameraPosition, cameraTarget, cameraUp);
  44. device.Transform.Projection = Matrix.OrthoLH(800, 600, -2.0f, 2.0f);
  45.  
  46. fillBuffer();
  47. }
  48.  
  49. public void fillBuffer()
  50. {
  51. goo.MakeTransparent(goo.GetPixel(1,1));
  52. soo.MakeTransparent(soo.GetPixel(1,1));
  53.  
  54. grass = Texture.FromBitmap(device, goo, 0, Pool.Managed);
  55. stone = Texture.FromBitmap(device, soo, 0, Pool.Managed);
  56.  
  57. CustomVertex.PositionTextured[] verts = new CustomVertex.PositionTextured[8];
  58. verts[0] = new CustomVertex.PositionTextured(new Vector3(0f,0f,0f), 0, 0);
  59. verts[1] = new CustomVertex.PositionTextured(new Vector3(0f,-40f,0f), 0, 1);
  60. verts[2] = new CustomVertex.PositionTextured(new Vector3(40f,0f,0f), 1, 0);
  61. verts[3] = new CustomVertex.PositionTextured(new Vector3(40f,-40f,0f), 1, 1);
  62. verts[4] = new CustomVertex.PositionTextured(new Vector3(20f,-10f,0f), 0, 0);
  63. verts[5] = new CustomVertex.PositionTextured(new Vector3(20f,-50f,0f), 0, 1);
  64. verts[6] = new CustomVertex.PositionTextured(new Vector3(60f,-10f,0f), 1, 0);
  65. verts[7] = new CustomVertex.PositionTextured(new Vector3(60f,-50f,0f), 1, 1);
  66.  
  67. vb = new VertexBuffer(typeof(CustomVertex.PositionTextured), verts.Length, device, 0, CustomVertex.PositionTextured.Format, Pool.Default);
  68.  
  69. GraphicsStream stream = vb.Lock(0, 0, LockFlags.None);
  70. stream.Write(verts);
  71. vb.Unlock();
  72. }
  73.  
  74. public void Render()
  75. {
  76. device.Clear(ClearFlags.Target, Color.White, 1.0F, 0);
  77. device.BeginScene();
  78.  
  79. device.SetStreamSource(0, vb, 0);
  80. device.VertexFormat = CustomVertex.PositionTextured.Format;
  81. device.SetTexture(0, grass);
  82. device.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 2);
  83. device.SetTexture(0, stone);
  84. device.DrawPrimitives(PrimitiveType.TriangleStrip, 4, 2);
  85.  
  86. device.EndScene();
  87. device.Present();
  88. }
  89. }
Add Comment
Please, Sign In to add comment