Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool DeviceContext::Initialize()
- {
- File vertexShaderFile;
- UInt numElements;
- HRESULT hresult;
- //D3D11_INPUT_ELEMENT_DESC polygonLayout[] =
- //{
- // {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position
- // {"NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal
- // {"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord
- //};
- //D3D11_INPUT_ELEMENT_DESC polygonLayout[] =
- //{
- // {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position
- // {"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord
- //};
- // Default3D Input Layout--------------------------------------------------------------
- D3D11_INPUT_ELEMENT_DESC default3DLayout[] =
- {
- {"POSITION", 0, DXGI_FORMAT_R16_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position X
- {"POSITION", 1, DXGI_FORMAT_R16_FLOAT, 0, 2, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Y
- {"POSITION", 2, DXGI_FORMAT_R16_FLOAT, 0, 4, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Z
- {"NORMAL", 0, DXGI_FORMAT_R16_SNORM, 0, 6, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal X
- {"NORMAL", 1, DXGI_FORMAT_R16_SNORM, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal Y
- {"NORMAL", 2, DXGI_FORMAT_R16_SNORM, 0, 10, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal Z
- {"TEXCOORD", 0, DXGI_FORMAT_R16_UNORM, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord X
- {"TEXCOORD", 1, DXGI_FORMAT_R16_UNORM, 0, 14, D3D11_INPUT_PER_VERTEX_DATA, 0} // Texcoord Y
- };
- // Get a count of the elements in the layout
- numElements = sizeof(default3DLayout) / sizeof(default3DLayout[0]);
- // Open the shader associated with this input layout and retrieve its input signature
- vertexShaderFile.Open("Default3D.cso", File::Mode::Read);
- vertexShaderFile.Allocate(vertexShaderFile.FileSize + 1);
- vertexShaderFile.Load(vertexShaderFile.FileSize);
- Log::Singleton->Write("Creating the input layout");
- // Create the vertex input layout
- hresult = Window::Singleton->Device->CreateInputLayout(default3DLayout, numElements, vertexShaderFile.Data, vertexShaderFile.Size, &Layouts[Layout::Default3D]);
- if(FAILED(hresult)) { return false; }
- // We're done with the file for now
- vertexShaderFile.Close();
- //D3D11_INPUT_ELEMENT_DESC polygonLayout[] =
- //{
- // {"POSITION", 0, DXGI_FORMAT_R16_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position X
- // {"POSITION", 1, DXGI_FORMAT_R16_FLOAT, 0, 2, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Y
- // {"POSITION", 2, DXGI_FORMAT_R16_FLOAT, 0, 4, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Z
- // {"TEXCOORD", 0, DXGI_FORMAT_R8_UNORM, 0, 6, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord X
- // {"TEXCOORD", 1, DXGI_FORMAT_R8_UNORM, 0, 7, D3D11_INPUT_PER_VERTEX_DATA, 0} // Texcoord Y
- //};
- //D3D11_INPUT_ELEMENT_DESC polygonLayout[] =
- //{
- // {"POSITION", 0, DXGI_FORMAT_R16_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position X
- // {"POSITION", 1, DXGI_FORMAT_R16_FLOAT, 0, 2, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Y
- // {"POSITION", 2, DXGI_FORMAT_R16_FLOAT, 0, 4, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Z
- // {"NORMAL", 0, DXGI_FORMAT_R16_SNORM, 0, 6, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal X
- // {"NORMAL", 1, DXGI_FORMAT_R16_SNORM, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal Y
- // {"NORMAL", 2, DXGI_FORMAT_R16_SNORM, 0, 10, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal Z
- // {"TEXCOORD", 0, DXGI_FORMAT_R16_UNORM, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord X
- // {"TEXCOORD", 1, DXGI_FORMAT_R16_UNORM, 0, 14, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord Y
- // {"INDICES", 0, DXGI_FORMAT_R8G8B8A8_UINT, 0, 16, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Bone Indices
- // {"WEIGHTS", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, 20, D3D11_INPUT_PER_VERTEX_DATA, 0} // Bone Weights
- //};
- // Tangent3D Input Layout--------------------------------------------------------------
- D3D11_INPUT_ELEMENT_DESC tangent3DLayout[] =
- {
- {"POSITION", 0, DXGI_FORMAT_R16_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position X
- {"POSITION", 1, DXGI_FORMAT_R16_FLOAT, 0, 2, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Y
- {"POSITION", 2, DXGI_FORMAT_R16_FLOAT, 0, 4, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Z
- {"NORMAL", 0, DXGI_FORMAT_R16_SNORM, 0, 6, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal X
- {"NORMAL", 1, DXGI_FORMAT_R16_SNORM, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal Y
- {"NORMAL", 2, DXGI_FORMAT_R16_SNORM, 0, 10, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal Z
- {"TANGENT", 0, DXGI_FORMAT_R16_SNORM, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Tangent X
- {"TANGENT", 1, DXGI_FORMAT_R16_SNORM, 0, 14, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Tangent Y
- {"TANGENT", 2, DXGI_FORMAT_R16_SNORM, 0, 16, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Tangent Z
- {"TANGENT", 3, DXGI_FORMAT_R16_SNORM, 0, 18, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Tangent W
- {"TEXCOORD", 0, DXGI_FORMAT_R16_UNORM, 0, 20, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord X
- {"TEXCOORD", 1, DXGI_FORMAT_R16_UNORM, 0, 22, D3D11_INPUT_PER_VERTEX_DATA, 0} // Texcoord Y
- };
- // Get a count of the elements in the layout
- numElements = sizeof(tangent3DLayout) / sizeof(tangent3DLayout[0]);
- // Open the shader associated with this input layout and retrieve its input signature
- vertexShaderFile.Open("Tangent3D.cso", File::Mode::Read);
- vertexShaderFile.Allocate(vertexShaderFile.FileSize + 1);
- vertexShaderFile.Load(vertexShaderFile.FileSize);
- Log::Singleton->Write("Creating the input layout");
- // Create the vertex input layout
- hresult = Window::Singleton->Device->CreateInputLayout(tangent3DLayout, numElements, vertexShaderFile.Data, vertexShaderFile.Size, &Layouts[Layout::Tangent3D]);
- if(FAILED(hresult)) { return false; }
- // We're done with the file now
- vertexShaderFile.Close();
- // SkinnedTangent3D Input Layout ------------------------------------------------------
- D3D11_INPUT_ELEMENT_DESC skinnedtangent3DLayout[] =
- {
- {"POSITION", 0, DXGI_FORMAT_R16_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position X
- {"POSITION", 1, DXGI_FORMAT_R16_FLOAT, 0, 2, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Y
- {"POSITION", 2, DXGI_FORMAT_R16_FLOAT, 0, 4, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Position Z
- {"NORMAL", 0, DXGI_FORMAT_R16_SNORM, 0, 6, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal X
- {"NORMAL", 1, DXGI_FORMAT_R16_SNORM, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal Y
- {"NORMAL", 2, DXGI_FORMAT_R16_SNORM, 0, 10, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Normal Z
- {"TANGENT", 0, DXGI_FORMAT_R16_SNORM, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Tangent X
- {"TANGENT", 1, DXGI_FORMAT_R16_SNORM, 0, 14, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Tangent Y
- {"TANGENT", 2, DXGI_FORMAT_R16_SNORM, 0, 16, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Tangent Z
- {"TANGENT", 3, DXGI_FORMAT_R16_SNORM, 0, 18, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Tangent W
- {"TEXCOORD", 0, DXGI_FORMAT_R16_UNORM, 0, 20, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord X
- {"TEXCOORD", 1, DXGI_FORMAT_R16_UNORM, 0, 22, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Texcoord Y
- {"INDICES", 0, DXGI_FORMAT_R8G8B8A8_UINT, 0, 24, D3D11_INPUT_PER_VERTEX_DATA, 0}, // Bone Indices
- {"WEIGHTS", 0, DXGI_FORMAT_R8G8B8A8_UNORM, 0, 28, D3D11_INPUT_PER_VERTEX_DATA, 0} // Bone Weights
- };
- return true;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement