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:
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user