mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	Backends: support for unity builds for dx10/dx11/dx12 backends (#5387)
This commit is contained in:
		@@ -62,7 +62,7 @@ struct ImGui_ImplDX10_Data
 | 
				
			|||||||
    ImGui_ImplDX10_Data()       { memset((void*)this, 0, sizeof(*this)); VertexBufferSize = 5000; IndexBufferSize = 10000; }
 | 
					    ImGui_ImplDX10_Data()       { memset((void*)this, 0, sizeof(*this)); VertexBufferSize = 5000; IndexBufferSize = 10000; }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct VERTEX_CONSTANT_BUFFER
 | 
					struct VERTEX_CONSTANT_BUFFER_DX10
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    float   mvp[4][4];
 | 
					    float   mvp[4][4];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -171,7 +171,7 @@ void ImGui_ImplDX10_RenderDrawData(ImDrawData* draw_data)
 | 
				
			|||||||
        void* mapped_resource;
 | 
					        void* mapped_resource;
 | 
				
			||||||
        if (bd->pVertexConstantBuffer->Map(D3D10_MAP_WRITE_DISCARD, 0, &mapped_resource) != S_OK)
 | 
					        if (bd->pVertexConstantBuffer->Map(D3D10_MAP_WRITE_DISCARD, 0, &mapped_resource) != S_OK)
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        VERTEX_CONSTANT_BUFFER* constant_buffer = (VERTEX_CONSTANT_BUFFER*)mapped_resource;
 | 
					        VERTEX_CONSTANT_BUFFER_DX10* constant_buffer = (VERTEX_CONSTANT_BUFFER_DX10*)mapped_resource;
 | 
				
			||||||
        float L = draw_data->DisplayPos.x;
 | 
					        float L = draw_data->DisplayPos.x;
 | 
				
			||||||
        float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x;
 | 
					        float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x;
 | 
				
			||||||
        float T = draw_data->DisplayPos.y;
 | 
					        float T = draw_data->DisplayPos.y;
 | 
				
			||||||
@@ -423,7 +423,7 @@ bool    ImGui_ImplDX10_CreateDeviceObjects()
 | 
				
			|||||||
        // Create the constant buffer
 | 
					        // Create the constant buffer
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            D3D10_BUFFER_DESC desc;
 | 
					            D3D10_BUFFER_DESC desc;
 | 
				
			||||||
            desc.ByteWidth = sizeof(VERTEX_CONSTANT_BUFFER);
 | 
					            desc.ByteWidth = sizeof(VERTEX_CONSTANT_BUFFER_DX10);
 | 
				
			||||||
            desc.Usage = D3D10_USAGE_DYNAMIC;
 | 
					            desc.Usage = D3D10_USAGE_DYNAMIC;
 | 
				
			||||||
            desc.BindFlags = D3D10_BIND_CONSTANT_BUFFER;
 | 
					            desc.BindFlags = D3D10_BIND_CONSTANT_BUFFER;
 | 
				
			||||||
            desc.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE;
 | 
					            desc.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,7 +63,7 @@ struct ImGui_ImplDX11_Data
 | 
				
			|||||||
    ImGui_ImplDX11_Data()       { memset((void*)this, 0, sizeof(*this)); VertexBufferSize = 5000; IndexBufferSize = 10000; }
 | 
					    ImGui_ImplDX11_Data()       { memset((void*)this, 0, sizeof(*this)); VertexBufferSize = 5000; IndexBufferSize = 10000; }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct VERTEX_CONSTANT_BUFFER
 | 
					struct VERTEX_CONSTANT_BUFFER_DX11
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    float   mvp[4][4];
 | 
					    float   mvp[4][4];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -177,7 +177,7 @@ void ImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data)
 | 
				
			|||||||
        D3D11_MAPPED_SUBRESOURCE mapped_resource;
 | 
					        D3D11_MAPPED_SUBRESOURCE mapped_resource;
 | 
				
			||||||
        if (ctx->Map(bd->pVertexConstantBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_resource) != S_OK)
 | 
					        if (ctx->Map(bd->pVertexConstantBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped_resource) != S_OK)
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        VERTEX_CONSTANT_BUFFER* constant_buffer = (VERTEX_CONSTANT_BUFFER*)mapped_resource.pData;
 | 
					        VERTEX_CONSTANT_BUFFER_DX11* constant_buffer = (VERTEX_CONSTANT_BUFFER_DX11*)mapped_resource.pData;
 | 
				
			||||||
        float L = draw_data->DisplayPos.x;
 | 
					        float L = draw_data->DisplayPos.x;
 | 
				
			||||||
        float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x;
 | 
					        float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x;
 | 
				
			||||||
        float T = draw_data->DisplayPos.y;
 | 
					        float T = draw_data->DisplayPos.y;
 | 
				
			||||||
@@ -435,7 +435,7 @@ bool    ImGui_ImplDX11_CreateDeviceObjects()
 | 
				
			|||||||
        // Create the constant buffer
 | 
					        // Create the constant buffer
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            D3D11_BUFFER_DESC desc;
 | 
					            D3D11_BUFFER_DESC desc;
 | 
				
			||||||
            desc.ByteWidth = sizeof(VERTEX_CONSTANT_BUFFER);
 | 
					            desc.ByteWidth = sizeof(VERTEX_CONSTANT_BUFFER_DX11);
 | 
				
			||||||
            desc.Usage = D3D11_USAGE_DYNAMIC;
 | 
					            desc.Usage = D3D11_USAGE_DYNAMIC;
 | 
				
			||||||
            desc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
 | 
					            desc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
 | 
				
			||||||
            desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
 | 
					            desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,7 +74,7 @@ struct ImGui_ImplDX12_Data
 | 
				
			|||||||
    ImGui_ImplDX12_Data()           { memset((void*)this, 0, sizeof(*this)); frameIndex = UINT_MAX; }
 | 
					    ImGui_ImplDX12_Data()           { memset((void*)this, 0, sizeof(*this)); frameIndex = UINT_MAX; }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct VERTEX_CONSTANT_BUFFER
 | 
					struct VERTEX_CONSTANT_BUFFER_DX12
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    float   mvp[4][4];
 | 
					    float   mvp[4][4];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -93,7 +93,7 @@ static void ImGui_ImplDX12_SetupRenderState(ImDrawData* draw_data, ID3D12Graphic
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Setup orthographic projection matrix into our constant buffer
 | 
					    // Setup orthographic projection matrix into our constant buffer
 | 
				
			||||||
    // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right).
 | 
					    // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right).
 | 
				
			||||||
    VERTEX_CONSTANT_BUFFER vertex_constant_buffer;
 | 
					    VERTEX_CONSTANT_BUFFER_DX12 vertex_constant_buffer;
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        float L = draw_data->DisplayPos.x;
 | 
					        float L = draw_data->DisplayPos.x;
 | 
				
			||||||
        float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x;
 | 
					        float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user