From eccc5cfdf935190d911b466e81640ca96db3ff4c Mon Sep 17 00:00:00 2001 From: David Rose Date: Sun, 7 Jun 2009 17:13:36 +0000 Subject: [PATCH] error-check parameters to setup_texture() --- panda/src/gobj/texture.cxx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/panda/src/gobj/texture.cxx b/panda/src/gobj/texture.cxx index ab12dcb702..d555bbd1f5 100644 --- a/panda/src/gobj/texture.cxx +++ b/panda/src/gobj/texture.cxx @@ -3761,17 +3761,31 @@ void Texture:: do_setup_texture(Texture::TextureType texture_type, int x_size, int y_size, int z_size, Texture::ComponentType component_type, Texture::Format format) { - if (texture_type == TT_cube_map) { + switch (texture_type) { + case TT_1d_texture: + nassertv(y_size == 1 && z_size == 1); + break; + + case TT_2d_texture: + nassertv(z_size == 1); + break; + + case TT_3d_texture: + break; + + case TT_cube_map: // Cube maps must always consist of six square images. nassertv(x_size == y_size && z_size == 6); - + // In principle the wrap mode shouldn't mean anything to a cube // map, but some drivers seem to misbehave if it's other than // WM_clamp. _wrap_u = WM_clamp; _wrap_v = WM_clamp; _wrap_w = WM_clamp; + break; } + if (texture_type != TT_2d_texture) { do_clear_simple_ram_image(); }