diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2013-04-12 21:56:07 +0400 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2013-04-12 21:56:07 +0400 |
commit | d0beabb642ea8acb8e3d69aa3fc503ad703e7dfd (patch) | |
tree | 35684f2a142bd21b4e1c380ad61a8d8ff9df25c9 /source/blender/gpu/intern/gpu_draw.c | |
parent | a305452275207a555d2812c3a5ea6647f0f594e4 (diff) |
Add function to query maximum texture size. Also, make texture upload
functions aware of this limit.
Diffstat (limited to 'source/blender/gpu/intern/gpu_draw.c')
-rw-r--r-- | source/blender/gpu/intern/gpu_draw.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index e95bcab5f03..62b371cf495 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -196,17 +196,21 @@ static bool is_power_of_2_resolution(int w, int h) static bool is_over_resolution_limit(int w, int h) { - if (U.glreslimit != 0) - return (w > U.glreslimit || h > U.glreslimit); + int reslimit = (U.glreslimit != 0)? + min_ii(U.glreslimit, GPU_max_texture_size()) : + GPU_max_texture_size(); - return false; + return (w > reslimit || h > reslimit); } static int smaller_power_of_2_limit(int num) { + int reslimit = (U.glreslimit != 0)? + min_ii(U.glreslimit, GPU_max_texture_size()) : + GPU_max_texture_size(); /* take texture clamping into account */ - if (U.glreslimit != 0 && num > U.glreslimit) - return U.glreslimit; + if (num > reslimit) + return reslimit; return power_of_2_min_i(num); } |