/// <summary>Create Renderer instance and compile shader's programs.</summary> /// <param name="directX3DGraphics">Inctance of <see cref="DirectX3DGraphics"/>.</param> public Renderer(DirectX3DGraphics directX3DGraphics) { _directX3DGraphics = directX3DGraphics; Device11 device = _directX3DGraphics.Device; DeviceContext deviceContext = _directX3DGraphics.DeviceContext; // Compile Vertex and Pixel shaders CompilationResult vertexShaderByteCode = ShaderBytecode.CompileFromFile("Shaders\\vertex.hlsl", "vertexShader", "vs_5_0"); _vertexShader = new VertexShader(device, vertexShaderByteCode); CompilationResult pixelShaderByteCode = ShaderBytecode.CompileFromFile("Shaders\\pixel.hlsl", "pixelShader", "ps_5_0"); _pixelShader = new PixelShader(device, pixelShaderByteCode); // Input elements. InputElement[] inputElements = new[] { new InputElement("POSITION", 0, Format.R32G32B32A32_Float, 0, 0), new InputElement("NORMAL", 0, Format.R32G32B32A32_Float, 16, 0), new InputElement("COLOR", 0, Format.R32G32B32A32_Float, 32, 0), new InputElement("TEXCOORD", 0, Format.R32G32_Float, 48, 0), new InputElement("TEXCOORD", 1, Format.R32G32_Float, 56, 0) }; // Layout from VertexShader input signature _shaderSignature = ShaderSignature.GetInputSignature(vertexShaderByteCode); _inputLayout = new InputLayout(device, _shaderSignature, inputElements); Utilities.Dispose(ref vertexShaderByteCode); Utilities.Dispose(ref pixelShaderByteCode); // Prepare All the stages deviceContext.InputAssembler.InputLayout = _inputLayout; deviceContext.VertexShader.Set(_vertexShader); deviceContext.PixelShader.Set(_pixelShader); }
public Loader(DirectX3DGraphics directX3DGraphics, DirectX2DGraphics directX2DGraphics, Renderer renderer, ImagingFactory imagingFactory) { materials = new Dictionary <string, Material>(); textures = new Dictionary <string, Texture>(); _directX3DGraphics = directX3DGraphics; _directX2DGraphics = directX2DGraphics; _renderer = renderer; _imagingFactory = imagingFactory; samplerState = new SamplerStates(_directX3DGraphics); }
/// <summary> /// Constructor. Initialize all objects. /// </summary> public GameProcess() { audioDevice = new SharpAudioDevice(); renderForm = new RenderForm("SharpDX"); renderForm.ClientSize = new Size(1500, 800); renderForm.UserResized += RenderFormResizedCallback; renderForm.Activated += RenderFormActivatedCallback; renderForm.Deactivate += RenderFormDeactivateCallback; directX3DGraphics = new DirectX3DGraphics(renderForm); renderer = new Renderer(directX3DGraphics); renderer.CreateConstantBuffers(); directX2DGraphics = new DirectX2DGraphics(directX3DGraphics); Loader loader = new Loader(directX3DGraphics, directX2DGraphics, renderer, directX2DGraphics.ImagingFactory); samplerStates = new SamplerStates(directX3DGraphics); timeHelper = new TimeHelper(); InitializeTextures(loader); renderer.SetWhiteTexture(textures["white.bmp"]); loader.StubTexture = textures["white.bmp"]; materials = loader.LoadMaterials("Resources\\materials.txt", textures); Vector3 initial = new Vector3(105f, 0, -105f); Vector4 pos = new Vector4(0, 0, 0, 0); InitHUDResources(); InitializeLight(); inputController = new InputController(renderForm); mainCharacterService = new MainCharacterService("some", inputController, loader, materials[3], audioDevice); Queue <string> files = new Queue <string>(); files.Enqueue("Resources\\Description\\map1.txt"); files.Enqueue("Resources\\Description\\map1.txt"); levelService = new LevelService(files, mainCharacterService, loader, materials[2], inputController, audioDevice); cameraService = new CameraService(new Camera(new Vector4(-119.0f, 144.0f, 129.0f, 1.0f)), inputController); Vector4 initialPosition = new Vector4(20.5f, 1f, 20.5f, 1); Vector4 position = initialPosition; loader = null; }