diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-02-09 23:58:31 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-02-09 23:58:31 +0300 |
commit | 283926aa2d0c6366d92a4f38e994e843b73659f6 (patch) | |
tree | 2bd35e5609efa63882ab81eab9e8009a691c5acb /source/blender/editors/space_image | |
parent | c02bc1ce5379356b5c17034457a59aebf6e41725 (diff) |
2.5: UV Editor module porting pretty much finished now, only missing
still is mirror transform. This commits adds the remaining operators:
* UV mapping operators (U key menu): cube, sphere, cylinder, etc.
* Hide/Show operators.
And solves most XXX's, including:
* Fix bad includes and calls into space image.
* Aspect ratio correction.
* Create UVs if they don't exist yet on unwrap.
* Assign image to UVs.
* Drawing proportional edit circle.
Diffstat (limited to 'source/blender/editors/space_image')
-rw-r--r-- | source/blender/editors/space_image/image_draw.c | 9 | ||||
-rw-r--r-- | source/blender/editors/space_image/image_header.c | 86 | ||||
-rw-r--r-- | source/blender/editors/space_image/image_intern.h | 15 | ||||
-rw-r--r-- | source/blender/editors/space_image/image_ops.c | 39 | ||||
-rw-r--r-- | source/blender/editors/space_image/space_image.c | 105 |
5 files changed, 109 insertions, 145 deletions
diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c index 70a05d52376..42c91d7ea1b 100644 --- a/source/blender/editors/space_image/image_draw.c +++ b/source/blender/editors/space_image/image_draw.c @@ -52,6 +52,7 @@ #include "BIF_gl.h" #include "BIF_glutil.h" +#include "ED_image.h" #include "ED_screen.h" #include "UI_resources.h" @@ -663,16 +664,16 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene) } } /* and we check for spare */ - ibuf= get_space_image_buffer(sima); + ibuf= ED_space_image_buffer(sima); } #endif /* put scene context variable in iuser */ sima->iuser.scene= scene; /* retrieve the image and information about it */ - ima= get_space_image(sima); - ibuf= get_space_image_buffer(sima); - get_space_image_zoom(sima, ar, &zoomx, &zoomy); + ima= ED_space_image(sima); + ibuf= ED_space_image_buffer(sima); + ED_space_image_zoom(sima, ar, &zoomx, &zoomy); show_viewer= (ima && ima->source == IMA_SRC_VIEWER); show_render= (show_viewer && ima->type == IMA_TYPE_R_RESULT); diff --git a/source/blender/editors/space_image/image_header.c b/source/blender/editors/space_image/image_header.c index 7f9171e87b3..3a1b623c09e 100644 --- a/source/blender/editors/space_image/image_header.c +++ b/source/blender/editors/space_image/image_header.c @@ -51,6 +51,7 @@ #include "IMB_imbuf.h" #include "IMB_imbuf_types.h" +#include "ED_image.h" #include "ED_mesh.h" #include "ED_screen.h" #include "ED_types.h" @@ -61,6 +62,7 @@ #include "BIF_gl.h" #include "BIF_glutil.h" +#include "BIF_transform.h" #include "UI_interface.h" #include "UI_resources.h" @@ -132,9 +134,9 @@ static void image_viewmenu(bContext *C, uiMenuItem *head, void *arg_unused) RNA_pointer_create(&sc->id, &RNA_SpaceImageEditor, sima, &spaceptr); RNA_pointer_create(&sc->id, &RNA_SpaceUVEditor, sima, &uvptr); - show_render= get_space_image_show_render(sima); - show_paint= get_space_image_show_paint(sima); - show_uvedit= get_space_image_show_uvedit(sima, CTX_data_edit_object(C)); + show_render= ED_space_image_show_render(sima); + show_paint= ED_space_image_show_paint(sima); + show_uvedit= ED_space_image_show_uvedit(sima, CTX_data_edit_object(C)); /* create menu */ uiMenuItemO(head, ICON_MENU_PANEL, "IMAGE_OT_toggle_view_properties_panel"); // View Properties... @@ -251,10 +253,10 @@ static void image_imagemenu(bContext *C, uiMenuItem *head, void *arg_unused) int show_render; /* retrieve state */ - ima= get_space_image(sima); - ibuf= get_space_image_buffer(sima); + ima= ED_space_image(sima); + ibuf= ED_space_image_buffer(sima); - show_render= get_space_image_show_render(sima); + show_render= ED_space_image_show_render(sima); RNA_pointer_create(&sc->id, &RNA_SpaceImageEditor, sima, &spaceptr); @@ -306,56 +308,18 @@ static void image_imagemenu(bContext *C, uiMenuItem *head, void *arg_unused) #endif } -#if 0 -static void do_image_uvs_showhidemenu(void *arg, int event) -{ - switch(event) { - case 4: /* show hidden faces */ - reveal_tface_uv(); - break; - case 5: /* hide selected faces */ - hide_tface_uv(0); - break; - case 6: /* hide deselected faces */ - hide_tface_uv(1); - break; - } - allqueue(REDRAWVIEW3D, 0); -} -#endif - static void image_uvs_showhidemenu(bContext *C, uiMenuItem *head, void *arg_unused) { - uiMenuItemO(head, 0, "UV_OT_show_hidden_faces"); // Show Hidden Faces|Alt H - uiMenuItemO(head, 0, "UV_OT_hide_selected_faces"); // Hide Selected Faces|H - uiMenuItemO(head, 0, "UV_OT_hide_deselected_faces"); // Hide Deselected Faces|Shift H + uiMenuItemO(head, 0, "UV_OT_show_hidden"); + uiMenuItemO(head, 0, "UV_OT_hide_selected"); + uiMenuItemO(head, 0, "UV_OT_hide_deselected"); } -#if 0 -static void do_image_uvs_transformmenu(void *arg, int event) -{ - switch(event) { - case 0: /* Grab */ - initTransform(TFM_TRANSLATION, CTX_NONE); - Transform(); - break; - case 1: /* Rotate */ - initTransform(TFM_ROTATION, CTX_NONE); - Transform(); - break; - case 2: /* Scale */ - initTransform(TFM_RESIZE, CTX_NONE); - Transform(); - break; - } -} -#endif - static void image_uvs_transformmenu(bContext *C, uiMenuItem *head, void *arg_unused) { - uiMenuItemO(head, 0, "UV_OT_grab"); // Grab/Move|G - uiMenuItemO(head, 0, "UV_OT_rotate"); // Rotate|R - uiMenuItemO(head, 0, "UV_OT_scale"); // Scale|S + uiMenuItemEnumO(head, 0, "TFM_OT_transform", "mode", TFM_TRANSLATION); + uiMenuItemEnumO(head, 0, "TFM_OT_transform", "mode", TFM_ROTATION); + uiMenuItemEnumO(head, 0, "TFM_OT_transform", "mode", TFM_RESIZE); } static void image_uvs_mirrormenu(bContext *C, uiMenuItem *head, void *arg_unused) @@ -435,8 +399,8 @@ static void image_uvsmenu(bContext *C, uiMenuItem *head, void *arg_unused) ImBuf *ibuf; /* retrieve state */ - ima= get_space_image(sima); - ibuf= get_space_image_buffer(sima); + ima= ED_space_image(sima); + ibuf= ED_space_image_buffer(sima); RNA_pointer_create(&sc->id, &RNA_SpaceUVEditor, sima, &uvptr); RNA_id_pointer_create(&scene->id, &sceneptr); @@ -806,11 +770,14 @@ static void sima_idpoin_handle(bContext *C, ID *id, int event) switch(event) { case UI_ID_BROWSE: case UI_ID_DELETE: - set_space_image(sima, scene, obedit, sima->image); + ED_space_image_set(sima, scene, obedit, sima->image); if(sima->image && sima->image->id.us==0) sima->image->id.us= 1; + if(obedit) + WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_DATA, obedit); + ED_area_tag_redraw(CTX_wm_area(C)); ED_undo_push(C, "Assign Image UV"); break; @@ -844,12 +811,12 @@ void image_header_buttons(const bContext *C, ARegion *ar) int xco, yco= 3, show_uvedit, show_render, show_paint; /* retrieve state */ - ima= get_space_image(sima); - ibuf= get_space_image_buffer(sima); + ima= ED_space_image(sima); + ibuf= ED_space_image_buffer(sima); - show_render= get_space_image_show_render(sima); - show_paint= get_space_image_show_paint(sima); - show_uvedit= get_space_image_show_uvedit(sima, CTX_data_edit_object(C)); + show_render= ED_space_image_show_render(sima); + show_paint= ED_space_image_show_paint(sima); + show_uvedit= ED_space_image_show_uvedit(sima, CTX_data_edit_object(C)); RNA_pointer_create(&sc->id, &RNA_SpaceImageEditor, sima, &spaceptr); RNA_pointer_create(&sc->id, &RNA_SpaceUVEditor, sima, &uvptr); @@ -1076,7 +1043,7 @@ static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event) uiMenuItem *head; int show_uvedit; - show_uvedit= get_space_image_show_uvedit(sima, obedit); + show_uvedit= ED_space_image_show_uvedit(sima, obedit); head= uiPupMenuBegin("Toolbox", 0); @@ -1101,4 +1068,3 @@ void IMAGE_OT_toolbox(wmOperatorType *ot) ot->poll= space_image_main_area_poll; } - diff --git a/source/blender/editors/space_image/image_intern.h b/source/blender/editors/space_image/image_intern.h index 3f61ec6207a..bbf0ed792c0 100644 --- a/source/blender/editors/space_image/image_intern.h +++ b/source/blender/editors/space_image/image_intern.h @@ -39,21 +39,6 @@ struct ImBuf; struct wmOperatorType; struct Scene; -/* space_image.c */ -struct Image *get_space_image(struct SpaceImage *sima); -void set_space_image(struct SpaceImage *sima, struct Scene *scene, struct Object *obedit, struct Image *ima); - -struct ImBuf *get_space_image_buffer(struct SpaceImage *sima); -void get_space_image_size(struct SpaceImage *sima, int *width, int *height); -void get_space_image_aspect(struct SpaceImage *sima, float *aspx, float *aspy); -void get_space_image_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy); -void get_space_image_uv_aspect(struct SpaceImage *sima, float *aspx, float *aspy); - -int get_space_image_show_render(struct SpaceImage *sima); -int get_space_image_show_paint(struct SpaceImage *sima); -int get_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit); -int get_space_image_show_uvshadow(struct SpaceImage *sima, struct Object *obedit); - /* image_header.c */ void image_header_buttons(const struct bContext *C, struct ARegion *ar); diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index e8f5b6956fd..afda954b074 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -61,6 +61,7 @@ #include "RNA_define.h" #include "RNA_types.h" +#include "ED_image.h" #include "ED_screen.h" #include "ED_uvedit.h" @@ -126,7 +127,7 @@ static void sima_zoom_set(SpaceImage *sima, ARegion *ar, float zoom) return; /* check zoom limits */ - get_space_image_size(sima, &width, &height); + ED_space_image_size(sima, &width, &height); width *= sima->zoom; height *= sima->zoom; @@ -413,10 +414,10 @@ static int view_all_exec(bContext *C, wmOperator *op) scene= (Scene*)CTX_data_scene(C); obedit= CTX_data_edit_object(C); - ima= get_space_image(sima); - ibuf= get_space_image_buffer(sima); - get_space_image_size(sima, &width, &height); - get_space_image_aspect(sima, &aspx, &aspy); + ima= ED_space_image(sima); + ibuf= ED_space_image_buffer(sima); + ED_space_image_size(sima, &width, &height); + ED_space_image_aspect(sima, &aspx, &aspy); w= width*aspx; h= height*aspy; @@ -474,9 +475,9 @@ static int view_selected_exec(bContext *C, wmOperator *op) scene= (Scene*)CTX_data_scene(C); obedit= CTX_data_edit_object(C); - ima= get_space_image(sima); - ibuf= get_space_image_buffer(sima); - get_space_image_size(sima, &width, &height); + ima= ED_space_image(sima); + ibuf= ED_space_image_buffer(sima); + ED_space_image_size(sima, &width, &height); /* get bounds */ if(!ED_uvedit_minmax(scene, ima, obedit, min, max)) @@ -621,7 +622,7 @@ static void load_image_filesel(SpaceImage *sima, Scene *scene, Object *obedit, c ima= BKE_add_image_file(str, scene->r.cfra); if(ima) { BKE_image_signal(ima, &sima->iuser, IMA_SIGNAL_RELOAD); - set_space_image(sima, scene, obedit, ima); + ED_space_image_set(sima, scene, obedit, ima); } // XXX BIF_undo_push("Load image UV"); // XXX allqueue(REDRAWIMAGE, 0); @@ -642,8 +643,8 @@ static void replace_image_filesel(SpaceImage *sima, char *str) /* called from f static void save_image_doit(SpaceImage *sima, Scene *scene, char *name) { - Image *ima= get_space_image(sima); - ImBuf *ibuf= get_space_image_buffer(sima); + Image *ima= ED_space_image(sima); + ImBuf *ibuf= ED_space_image_buffer(sima); int len; char str[FILE_MAXDIR+FILE_MAXFILE]; @@ -775,7 +776,7 @@ static char *filesel_imagetype_string(Image *ima) void save_as_image_sima(SpaceImage *sima, Scene *scene) { Image *ima = sima->image; - ImBuf *ibuf= get_space_image_buffer(sima); + ImBuf *ibuf= ED_space_image_buffer(sima); char name[FILE_MAXDIR+FILE_MAXFILE]; if (ima) { @@ -801,8 +802,8 @@ void save_as_image_sima(SpaceImage *sima, Scene *scene) /* if exists, saves over without fileselect */ void save_image_sima(SpaceImage *sima, Scene *scene) { - Image *ima = get_space_image(sima); - ImBuf *ibuf= get_space_image_buffer(sima); + Image *ima = ED_space_image(sima); + ImBuf *ibuf= ED_space_image_buffer(sima); char name[FILE_MAXDIR+FILE_MAXFILE]; if (ima) { @@ -880,7 +881,7 @@ void reload_image_sima(SpaceImage *sima) { if (sima ) { BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_RELOAD); - /* set_space_image(sima, scene, obedit, NULL); - do we really need this? */ + /* ED_space_image_set(sima, scene, obedit, NULL); - do we really need this? */ } // XXX allqueue(REDRAWIMAGE, 0); @@ -912,7 +913,7 @@ void new_image_sima(SpaceImage *sima, Scene *scene, Object *obedit) #endif ima = BKE_add_image_size(width, height, name, floatbuf, uvtestgrid, color); - set_space_image(sima, scene, obedit, ima); + ED_space_image_set(sima, scene, obedit, ima); BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE); // XXX BIF_undo_push("Add image"); @@ -937,7 +938,7 @@ void pack_image_sima(SpaceImage *sima) } } else { - ImBuf *ibuf= get_space_image_buffer(sima); + ImBuf *ibuf= ED_space_image_buffer(sima); if (ibuf && (ibuf->userflags & IB_BITMAPDIRTY)) { if(1) // XXX okee("Can't pack painted image. Use Repack as PNG?")) BKE_image_memorypack(ima); @@ -1045,7 +1046,7 @@ void image_final_aspect(Image *image, float *x, float *y) void sima_sample_color(SpaceImage *sima) { - ImBuf *ibuf= get_space_image_buffer(sima); + ImBuf *ibuf= ED_space_image_buffer(sima); float fx, fy; short mval[2], mvalo[2], firsttime=1; @@ -1143,7 +1144,7 @@ void mouseco_to_curtile(SpaceImage *sima, struct Object *obedit) short mval[2]; int show_uvedit; - show_uvedit= get_space_image_show_uvedit(sima, obedit); + show_uvedit= ED_space_image_show_uvedit(sima, obedit); if(!show_uvedit) return; if(sima->image && sima->image->tpageflag & IMA_TILES) { diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c index 19ba040ea8c..4f40dff378b 100644 --- a/source/blender/editors/space_image/space_image.c +++ b/source/blender/editors/space_image/space_image.c @@ -181,7 +181,7 @@ static void image_refresh(const bContext *C, ScrArea *sa) Object *obedit= CTX_data_edit_object(C); Image *ima; - ima= get_space_image(sima); + ima= ED_space_image(sima); /* check if we have to set the image from the editmesh */ if(ima && (ima->source==IMA_SRC_VIEWER || sima->pin)); @@ -235,11 +235,11 @@ static int image_context(const bContext *C, bContextDataMember member, bContextD SpaceImage *sima= (SpaceImage*)CTX_wm_space_data(C); if(member == CTX_DATA_EDIT_IMAGE) { - CTX_data_pointer_set(result, get_space_image(sima)); + CTX_data_pointer_set(result, ED_space_image(sima)); return 1; } else if(member == CTX_DATA_EDIT_IMAGE_BUFFER) { - CTX_data_pointer_set(result, get_space_image_buffer(sima)); + CTX_data_pointer_set(result, ED_space_image_buffer(sima)); return 1; } @@ -251,7 +251,7 @@ static int image_context(const bContext *C, bContextDataMember member, bContextD /* sets up the fields of the View2D from zoom and offset */ static void image_main_area_set_view2d(SpaceImage *sima, ARegion *ar) { - Image *ima= get_space_image(sima); + Image *ima= ED_space_image(sima); float x1, y1, w, h; int width, height, winx, winy; @@ -274,7 +274,7 @@ static void image_main_area_set_view2d(SpaceImage *sima, ARegion *ar) } #endif - get_space_image_size(sima, &width, &height); + ED_space_image_size(sima, &width, &height); w= width; h= height; @@ -354,6 +354,7 @@ static void image_main_area_draw(const bContext *C, ARegion *ar) /* and uvs in 0.0-1.0 space */ UI_view2d_view_ortho(C, v2d); draw_uvedit_main(sima, ar, scene, obedit); + ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST); UI_view2d_view_restore(C); /* scrollers? */ @@ -472,13 +473,13 @@ void ED_spacetype_image(void) /**************************** common state *****************************/ -Image *get_space_image(SpaceImage *sima) +Image *ED_space_image(SpaceImage *sima) { return sima->image; } /* called to assign images to UV faces */ -void set_space_image(SpaceImage *sima, Scene *scene, Object *obedit, Image *ima) +void ED_space_image_set(SpaceImage *sima, Scene *scene, Object *obedit, Image *ima) { ED_uvedit_assign_image(scene, obedit, ima, sima->image); @@ -493,7 +494,7 @@ void set_space_image(SpaceImage *sima, Scene *scene, Object *obedit, Image *ima) BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE); } -ImBuf *get_space_image_buffer(SpaceImage *sima) +ImBuf *ED_space_image_buffer(SpaceImage *sima) { ImBuf *ibuf; @@ -512,30 +513,42 @@ ImBuf *get_space_image_buffer(SpaceImage *sima) return NULL; } -void get_space_image_size(SpaceImage *sima, int *width, int *height) +void ED_image_size(Image *ima, int *width, int *height) { ImBuf *ibuf; - ibuf= get_space_image_buffer(sima); + ibuf= (ima)? BKE_image_get_ibuf(ima, NULL): NULL; if(ibuf && ibuf->x > 0 && ibuf->y > 0) { *width= ibuf->x; *height= ibuf->y; } - /* I know a bit weak... but preview uses not actual image size */ - // XXX else if(image_preview_active(sima, width, height)); else { *width= 256; *height= 256; } } -void get_space_image_aspect(SpaceImage *sima, float *aspx, float *aspy) +void ED_space_image_size(SpaceImage *sima, int *width, int *height) { - Image *ima; + ImBuf *ibuf; - ima= get_space_image(sima); + ibuf= ED_space_image_buffer(sima); + + if(ibuf && ibuf->x > 0 && ibuf->y > 0) { + *width= ibuf->x; + *height= ibuf->y; + } + /* I know a bit weak... but preview uses not actual image size */ + // XXX else if(image_preview_active(sima, width, height)); + else { + *width= 256; + *height= 256; + } +} +void ED_image_aspect(Image *ima, float *aspx, float *aspy) +{ *aspx= *aspy= 1.0; if((ima == NULL) || (ima->type == IMA_TYPE_R_RESULT) || (ima->type == IMA_TYPE_COMPOSITE) || @@ -546,45 +559,61 @@ void get_space_image_aspect(SpaceImage *sima, float *aspx, float *aspy) *aspy = ima->aspy/ima->aspx; } -void get_space_image_zoom(SpaceImage *sima, ARegion *ar, float *zoomx, float *zoomy) +void ED_space_image_aspect(SpaceImage *sima, float *aspx, float *aspy) +{ + ED_image_aspect(ED_space_image(sima), aspx, aspy); +} + +void ED_space_image_zoom(SpaceImage *sima, ARegion *ar, float *zoomx, float *zoomy) { int width, height; - get_space_image_size(sima, &width, &height); + ED_space_image_size(sima, &width, &height); *zoomx= (float)(ar->winrct.xmax - ar->winrct.xmin)/(float)((ar->v2d.cur.xmax - ar->v2d.cur.xmin)*width); *zoomy= (float)(ar->winrct.ymax - ar->winrct.ymin)/(float)((ar->v2d.cur.ymax - ar->v2d.cur.ymin)*height); } -void get_space_image_uv_aspect(SpaceImage *sima, float *aspx, float *aspy) +void ED_space_image_uv_aspect(SpaceImage *sima, float *aspx, float *aspy) { int w, h; - get_space_image_aspect(sima, aspx, aspy); - get_space_image_size(sima, &w, &h); + ED_space_image_aspect(sima, aspx, aspy); + ED_space_image_size(sima, &w, &h); + + *aspx *= (float)w/256.0f; + *aspy *= (float)h/256.0f; +} + +void ED_image_uv_aspect(Image *ima, float *aspx, float *aspy) +{ + int w, h; + + ED_image_aspect(ima, aspx, aspy); + ED_image_size(ima, &w, &h); *aspx *= (float)w; *aspy *= (float)h; } -int get_space_image_show_render(SpaceImage *sima) +int ED_space_image_show_render(SpaceImage *sima) { return (sima->image && ELEM(sima->image->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE)); } -int get_space_image_show_paint(SpaceImage *sima) +int ED_space_image_show_paint(SpaceImage *sima) { - if(get_space_image_show_render(sima)) + if(ED_space_image_show_render(sima)) return 0; return (sima->flag & SI_DRAWTOOL); } -int get_space_image_show_uvedit(SpaceImage *sima, Object *obedit) +int ED_space_image_show_uvedit(SpaceImage *sima, Object *obedit) { - if(get_space_image_show_render(sima)) + if(ED_space_image_show_render(sima)) return 0; - if(get_space_image_show_paint(sima)) + if(ED_space_image_show_paint(sima)) return 0; if(obedit && obedit->type == OB_MESH) @@ -593,33 +622,15 @@ int get_space_image_show_uvedit(SpaceImage *sima, Object *obedit) return 0; } -int get_space_image_show_uvshadow(SpaceImage *sima, Object *obedit) +int ED_space_image_show_uvshadow(SpaceImage *sima, Object *obedit) { - if(get_space_image_show_render(sima)) + if(ED_space_image_show_render(sima)) return 0; - if(get_space_image_show_paint(sima)) + if(ED_space_image_show_paint(sima)) if(obedit && obedit->type == OB_MESH) return EM_texFaceCheck(((Mesh*)obedit->data)->edit_mesh); return 0; } -/* Exported Functions */ - -Image *ED_space_image(SpaceImage *sima) -{ - return get_space_image(sima); -} - -void ED_space_image_size(SpaceImage *sima, int *width, int *height) -{ - get_space_image_size(sima, width, height); -} - -void ED_space_image_uv_aspect(SpaceImage *sima, float *aspx, float *aspy) -{ - get_space_image_uv_aspect(sima, aspx, aspy); -} - - |