aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Davy <[email protected]>2016-01-26 17:32:22 +0100
committerAxel Davy <[email protected]>2016-02-12 23:26:36 +0100
commitbb65b189f34fb497b69e1b267cb355a6829d4b6b (patch)
tree45ae9f8889eb3a2c2592e43a2937bb41cb3a6748
parentd973a525d387f1562e796ec598951ee5d2f02540 (diff)
st/nine: Move texture creation checks
We were having checks at both Create*Texture functions and in ctors. Move all Create*Texture checks to ctors. Signed-off-by: Axel Davy <[email protected]> Reviewed-by: Patrick Rudolph <[email protected]>
-rw-r--r--src/gallium/state_trackers/nine/cubetexture9.c2
-rw-r--r--src/gallium/state_trackers/nine/device9.c13
-rw-r--r--src/gallium/state_trackers/nine/texture9.c9
-rw-r--r--src/gallium/state_trackers/nine/volumetexture9.c2
4 files changed, 13 insertions, 13 deletions
diff --git a/src/gallium/state_trackers/nine/cubetexture9.c b/src/gallium/state_trackers/nine/cubetexture9.c
index 460cc853942..c6fa397ef8e 100644
--- a/src/gallium/state_trackers/nine/cubetexture9.c
+++ b/src/gallium/state_trackers/nine/cubetexture9.c
@@ -53,6 +53,8 @@ NineCubeTexture9_ctor( struct NineCubeTexture9 *This,
This, pParams, EdgeLength, Levels, Usage,
Format, Pool, pSharedHandle);
+ user_assert(EdgeLength, D3DERR_INVALIDCALL);
+ user_assert(!pSharedHandle || Pool == D3DPOOL_DEFAULT, D3DERR_INVALIDCALL);
user_assert(!(Usage & D3DUSAGE_AUTOGENMIPMAP) ||
(Pool != D3DPOOL_SYSTEMMEM && Levels <= 1), D3DERR_INVALIDCALL);
diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c
index 475ef96788e..b6e75b4514f 100644
--- a/src/gallium/state_trackers/nine/device9.c
+++ b/src/gallium/state_trackers/nine/device9.c
@@ -925,15 +925,6 @@ NineDevice9_CreateTexture( struct NineDevice9 *This,
D3DUSAGE_SOFTWAREPROCESSING | D3DUSAGE_TEXTAPI;
*ppTexture = NULL;
- user_assert(Width && Height, D3DERR_INVALIDCALL);
- user_assert(!pSharedHandle || This->ex, D3DERR_INVALIDCALL);
- /* When is used shared handle, Pool must be
- * SYSTEMMEM with Levels 1 or DEFAULT with any Levels */
- user_assert(!pSharedHandle || Pool != D3DPOOL_SYSTEMMEM || Levels == 1,
- D3DERR_INVALIDCALL);
- user_assert(!pSharedHandle || Pool == D3DPOOL_SYSTEMMEM || Pool == D3DPOOL_DEFAULT,
- D3DERR_INVALIDCALL);
- user_assert((Usage != D3DUSAGE_AUTOGENMIPMAP || Levels <= 1), D3DERR_INVALIDCALL);
hr = NineTexture9_new(This, Width, Height, Levels, Usage, Format, Pool,
&tex, pSharedHandle);
@@ -967,8 +958,6 @@ NineDevice9_CreateVolumeTexture( struct NineDevice9 *This,
D3DUSAGE_SOFTWAREPROCESSING;
*ppVolumeTexture = NULL;
- user_assert(Width && Height && Depth, D3DERR_INVALIDCALL);
- user_assert(!pSharedHandle || Pool == D3DPOOL_DEFAULT, D3DERR_INVALIDCALL);
hr = NineVolumeTexture9_new(This, Width, Height, Depth, Levels,
Usage, Format, Pool, &tex, pSharedHandle);
@@ -1001,8 +990,6 @@ NineDevice9_CreateCubeTexture( struct NineDevice9 *This,
D3DUSAGE_SOFTWAREPROCESSING;
*ppCubeTexture = NULL;
- user_assert(EdgeLength, D3DERR_INVALIDCALL);
- user_assert(!pSharedHandle || Pool == D3DPOOL_DEFAULT, D3DERR_INVALIDCALL);
hr = NineCubeTexture9_new(This, EdgeLength, Levels, Usage, Format, Pool,
&tex, pSharedHandle);
diff --git a/src/gallium/state_trackers/nine/texture9.c b/src/gallium/state_trackers/nine/texture9.c
index 0bc37d3d17e..73382156687 100644
--- a/src/gallium/state_trackers/nine/texture9.c
+++ b/src/gallium/state_trackers/nine/texture9.c
@@ -60,6 +60,15 @@ NineTexture9_ctor( struct NineTexture9 *This,
nine_D3DUSAGE_to_str(Usage),
d3dformat_to_string(Format), nine_D3DPOOL_to_str(Pool), pSharedHandle);
+ user_assert(Width && Height, D3DERR_INVALIDCALL);
+ user_assert(!pSharedHandle || pParams->device->ex, D3DERR_INVALIDCALL);
+ /* When is used shared handle, Pool must be
+ * SYSTEMMEM with Levels 1 or DEFAULT with any Levels */
+ user_assert(!pSharedHandle || Pool != D3DPOOL_SYSTEMMEM || Levels == 1,
+ D3DERR_INVALIDCALL);
+ user_assert(!pSharedHandle || Pool == D3DPOOL_SYSTEMMEM || Pool == D3DPOOL_DEFAULT,
+ D3DERR_INVALIDCALL);
+ user_assert((Usage != D3DUSAGE_AUTOGENMIPMAP || Levels <= 1), D3DERR_INVALIDCALL);
user_assert(!(Usage & D3DUSAGE_AUTOGENMIPMAP) ||
(Pool != D3DPOOL_SYSTEMMEM && Levels <= 1), D3DERR_INVALIDCALL);
diff --git a/src/gallium/state_trackers/nine/volumetexture9.c b/src/gallium/state_trackers/nine/volumetexture9.c
index e5b2b53148d..cdfe7f28198 100644
--- a/src/gallium/state_trackers/nine/volumetexture9.c
+++ b/src/gallium/state_trackers/nine/volumetexture9.c
@@ -48,6 +48,8 @@ NineVolumeTexture9_ctor( struct NineVolumeTexture9 *This,
This, pParams, Width, Height, Depth, Levels,
Usage, Format, Pool, pSharedHandle);
+ user_assert(Width && Height && Depth, D3DERR_INVALIDCALL);
+ user_assert(!pSharedHandle || Pool == D3DPOOL_DEFAULT, D3DERR_INVALIDCALL);
/* An IDirect3DVolume9 cannot be bound as a render target can it ? */
user_assert(!(Usage & (D3DUSAGE_RENDERTARGET | D3DUSAGE_DEPTHSTENCIL)),
D3DERR_INVALIDCALL);