Changes to image draw method options

It's now default to 2D textures, and no AUTO mode at this
moment, since detecting which method is the best not so
simple.

Image drawing could manually be switched to GLSL for tests
and feedback, but for default GLSL is not so much great.

Reason of this is huge images, where operations like panning
becomes dead slow comparing GLSL vs. 2D texture.
This commit is contained in:
Sergey Sharybin
2013-04-29 15:50:12 +00:00
parent 511e3466da
commit cabe929b2a
5 changed files with 7 additions and 7 deletions

View File

@@ -2187,6 +2187,9 @@ void init_userdef_do_versions(void)
if (U.pixelsize == 0.0f)
U.pixelsize = 1.0f;
if (U.image_draw_method == 0)
U.image_draw_method = IMAGE_DRAW_METHOD_2DTEXTURE;
/* funny name, but it is GE stuff, moves userdef stuff to engine */
// XXX space_set_commmandline_options();
/* this timer uses U */

View File

@@ -1049,9 +1049,7 @@ void glaDrawImBuf_glsl(ImBuf *ibuf, float x, float y, int zoomfilter,
force_fallback |= ibuf->channels == 1;
/* If user decided not to use GLSL, fallback to glaDrawPixelsAuto */
force_fallback |= !ELEM(U.image_draw_method,
IMAGE_DRAW_METHOD_AUTO,
IMAGE_DRAW_METHOD_GLSL);
force_fallback |= (U.image_draw_method != IMAGE_DRAW_METHOD_GLSL);
/* This is actually lots of crap, but currently not sure about
* more clear way to bypass partial buffer update crappyness

View File

@@ -1062,7 +1062,7 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
else {
bool force_fallback = false;
force_fallback |= !ELEM(U.image_draw_method, IMAGE_DRAW_METHOD_AUTO, IMAGE_DRAW_METHOD_GLSL);
force_fallback |= (U.image_draw_method != IMAGE_DRAW_METHOD_GLSL);
force_fallback |= (ibuf->dither != 0.0f);
if (force_fallback) {

View File

@@ -754,7 +754,7 @@ typedef enum eMultiSample_Type {
} eMultiSample_Type;
typedef enum eImageDrawMethod {
IMAGE_DRAW_METHOD_AUTO = 0,
/* IMAGE_DRAW_METHOD_AUTO = 0, */ /* Currently unused */
IMAGE_DRAW_METHOD_GLSL = 1,
IMAGE_DRAW_METHOD_2DTEXTURE = 2,
IMAGE_DRAW_METHOD_DRAWPIXELS = 3,

View File

@@ -3375,9 +3375,8 @@ static void rna_def_userdef_system(BlenderRNA *brna)
#endif
static EnumPropertyItem image_draw_methods[] = {
{IMAGE_DRAW_METHOD_AUTO, "AUTO", 0, "Auto", "Try to detect best drawing method automatically"},
{IMAGE_DRAW_METHOD_GLSL, "GLSL", 0, "GLSL", "Use GLSL shaders for display transform and draw image with 2D texture"},
{IMAGE_DRAW_METHOD_2DTEXTURE, "2DTEXTURE", 0, "2D Texture", "Use CPU for display transform and draw image with 2D texture"},
{IMAGE_DRAW_METHOD_GLSL, "GLSL", 0, "GLSL", "Use GLSL shaders for display transform and draw image with 2D texture"},
{IMAGE_DRAW_METHOD_DRAWPIXELS, "DRAWPIXELS", 0, "DrawPixels", "Use CPU for display transform and draw image using DrawPixels"},
{0, NULL, 0, NULL, NULL}
};