diff options
author | Luca Barbieri <[email protected]> | 2010-09-21 22:34:40 +0200 |
---|---|---|
committer | Luca Barbieri <[email protected]> | 2010-09-21 22:35:01 +0200 |
commit | b4b2091655676ec3b898d3ae7298192aa7f9147f (patch) | |
tree | 6f47a038b12b649352b5f8ecf52d93312972f6d5 /src | |
parent | 82c346673a78e6cc32e7a1451f2b127128246ef3 (diff) |
d3d1x: add template parameters to base class ctor calls for GCC 4.4
GCC 4.5 is fine without them, but GCC 4.4 requires them.
Should fully fix the build on GCC 4.4
Diffstat (limited to 'src')
4 files changed, 20 insertions, 18 deletions
diff --git a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp index 69ddbc5a0c0..41c8f29847e 100644 --- a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp +++ b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp @@ -77,7 +77,7 @@ struct GalliumDXGIFactory : public GalliumDXGIObject<IDXGIFactory1, IUnknown> void* resolver_cookie; GalliumDXGIFactory(const struct native_platform* platform, void* display, PFNHWNDRESOLVER resolver, void* resolver_cookie) - : GalliumDXGIObject((IUnknown*)NULL), platform(platform), display(display), resolver(resolver ? resolver : identity_resolver), resolver_cookie(resolver_cookie) + : GalliumDXGIObject<IDXGIFactory1, IUnknown>((IUnknown*)NULL), platform(platform), display(display), resolver(resolver ? resolver : identity_resolver), resolver_cookie(resolver_cookie) {} virtual HRESULT STDMETHODCALLTYPE EnumAdapters( @@ -316,7 +316,7 @@ struct GalliumDXGIOutput : public GalliumDXGIObject<IDXGIOutput, GalliumDXGIAdap DXGI_GAMMA_CONTROL* gamma; GalliumDXGIOutput(GalliumDXGIAdapter* adapter, std::string name, const struct native_connector* connector = 0) - : GalliumDXGIObject(adapter), connector(connector) + : GalliumDXGIObject<IDXGIOutput, GalliumDXGIAdapter>(adapter), connector(connector) { memset(&desc, 0, sizeof(desc)); for(unsigned i = 0; i < std::min(name.size(), sizeof(desc.DeviceName) - 1); ++i) @@ -818,7 +818,7 @@ struct GalliumDXGISwapChain : public GalliumDXGIObject<IDXGISwapChain, GalliumDX bool formats_compatible; GalliumDXGISwapChain(GalliumDXGIFactory* factory, IUnknown* p_device, const DXGI_SWAP_CHAIN_DESC& p_desc) - : GalliumDXGIObject(factory), desc(p_desc) + : GalliumDXGIObject<IDXGISwapChain, GalliumDXGIFactory>(factory), desc(p_desc) { HRESULT hr; diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11.cpp b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11.cpp index 69dfd403f3d..46a3905d8fc 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11.cpp +++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11.cpp @@ -126,20 +126,22 @@ struct GalliumD3D11Caps unsigned stages; }; -// used to avoid needing to have forward declarations of functions -// this is called "screen" because in the D3D10 case it's only part of the device -struct GalliumD3D11Screen - : public GalliumDXGIDevice< - GalliumMultiComObject< +typedef GalliumDXGIDevice< + GalliumMultiComObject< #if API >= 11 - GalliumPrivateDataComObject<ID3D11Device>, + GalliumPrivateDataComObject<ID3D11Device>, #else - GalliumPrivateDataComObject<ID3D10Device1>, + GalliumPrivateDataComObject<ID3D10Device1>, #endif - IGalliumDevice - > + IGalliumDevice > +> GalliumD3D11ScreenBase; + +// used to avoid needing to have forward declarations of functions +// this is called "screen" because in the D3D10 case it's only part of the device +struct GalliumD3D11Screen : public GalliumD3D11ScreenBase { + pipe_screen* screen; pipe_context* immediate_pipe; GalliumD3D11Caps screen_caps; @@ -159,7 +161,7 @@ struct GalliumD3D11Screen GalliumD3D11Screen(pipe_screen* screen, struct pipe_context* immediate_pipe, IDXGIAdapter* adapter) - : GalliumDXGIDevice(adapter), screen(screen), immediate_pipe(immediate_pipe) + : GalliumD3D11ScreenBase(adapter), screen(screen), immediate_pipe(immediate_pipe) { } diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h index a8573cdf686..032cb0ea841 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h +++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h @@ -119,7 +119,7 @@ struct GalliumD3D10Device : public GalliumD3D10ScreenImpl<threadsafe> #define SYNCHRONIZED do {} while(0) GalliumD3D11DeviceContext(GalliumD3D11Screen* device, pipe_context* pipe, bool owns_pipe, unsigned context_flags = 0) - : GalliumD3D11DeviceChild(device), pipe(pipe), owns_pipe(owns_pipe), context_flags(context_flags) + : GalliumD3D11DeviceChild<ID3D11DeviceContext>(device), pipe(pipe), owns_pipe(owns_pipe), context_flags(context_flags) { caps = device->screen_caps; init_context(); @@ -1988,7 +1988,7 @@ struct GalliumD3D11ImmediateDeviceContext : public GalliumD3D11DeviceContext<nonatomic_device_child_ptr_traits> { GalliumD3D11ImmediateDeviceContext(GalliumD3D11Screen* device, pipe_context* pipe, unsigned context_flags = 0) - : GalliumD3D11DeviceContext(device, pipe, context_flags) + : GalliumD3D11DeviceContext<nonatomic_device_child_ptr_traits>(device, pipe, context_flags) { // not necessary, but tests that the API at least basically works ClearState(); diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_objects.h b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_objects.h index ad6b28fceb1..b7542fd30e4 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_objects.h +++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_objects.h @@ -684,14 +684,14 @@ struct GalliumD3D11QueryOrPredicate : public GalliumD3D11Asynchronous<Base> struct GalliumD3D11Query : public GalliumD3D11QueryOrPredicate<ID3D11Query> { GalliumD3D11Query(GalliumD3D11Screen* device, struct pipe_query* query, unsigned data_size, const D3D11_QUERY_DESC& desc) - : GalliumD3D11QueryOrPredicate(device, query, data_size, desc) + : GalliumD3D11QueryOrPredicate<ID3D11Query>(device, query, data_size, desc) {} }; struct GalliumD3D11Predicate : public GalliumD3D11QueryOrPredicate<ID3D11Predicate> { GalliumD3D11Predicate(GalliumD3D11Screen* device, struct pipe_query* query, unsigned data_size, const D3D11_QUERY_DESC& desc) - : GalliumD3D11QueryOrPredicate(device, query, data_size, desc) + : GalliumD3D11QueryOrPredicate<ID3D11Predicate>(device, query, data_size, desc) {} ~GalliumD3D11Predicate() @@ -704,7 +704,7 @@ struct GalliumD3D11Counter : public GalliumD3D11Asynchronous<ID3D11Counter> { D3D11_COUNTER_DESC desc; GalliumD3D11Counter(GalliumD3D11Screen* device, struct pipe_query* query, unsigned data_size, const D3D11_COUNTER_DESC& desc) - : GalliumD3D11Asynchronous(device, query, data_size), desc(desc) + : GalliumD3D11Asynchronous<ID3D11Counter>(device, query, data_size), desc(desc) {} virtual void STDMETHODCALLTYPE GetDesc( |