In outliner, the icons sometimes were drawing too large or too small. Same happened in NLA, Action, Image window etc. And it happened for "International fonts" when set to use 'texture drawing'. Reason: the API call for setting icon size BIF_icon_set_aspect() was not used consistantly. Sometimes it was set, sometimes not. And even worse, for every icon drawn in UI buttons, the icon lookup had to be done twice because of the aspect function. Solved it by removing this call, and adding a new function: BIF_icon_draw_aspect() The old BIF_icon_draw() call now draws with aspect 1.0 always. The icons code already had optimal checking for changed sizes, zo a change in aspect won't result in much cpu overhead. Plus it saves calling icons lookup code, which will make it all a bit faster. Andrea: I've added this aspect function a long while ago, I think you also like it better how it is now? Please check!
59 lines
1.8 KiB
C++
59 lines
1.8 KiB
C++
/**
|
|
* $Id$
|
|
*
|
|
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version. The Blender
|
|
* Foundation also sells licenses for use in proprietary software under
|
|
* the Blender License. See http://www.blender.org/BL/ for information
|
|
* about this.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
* All rights reserved.
|
|
*
|
|
* The Original Code is: all of this file.
|
|
*
|
|
* Contributor(s): none yet.
|
|
*
|
|
* ***** END GPL/BL DUAL LICENSE BLOCK *****
|
|
*/
|
|
|
|
#ifndef BIF_PREVIEW_ICONS_H
|
|
#define BIF_PREVIEW_ICONS_H
|
|
|
|
struct Image;
|
|
struct ImBuf;
|
|
struct World;
|
|
struct Tex;
|
|
struct Lamp;
|
|
struct Material;
|
|
|
|
#define ICON_DEFAULT_HEIGHT 16
|
|
|
|
/*
|
|
Resizable Icons for Blender
|
|
*/
|
|
void BIF_icons_init(int first_dyn_id);
|
|
int BIF_icon_get_width(int icon_id);
|
|
int BIF_icon_get_height(int icon_id);
|
|
|
|
void BIF_icon_draw(float x, float y, int icon_id);
|
|
void BIF_icon_draw_aspect(float x, float y, int icon_id, float aspect);
|
|
void BIF_icon_draw_aspect_blended(float x, float y, int icon_id, float aspect, int shade);
|
|
void BIF_icons_free();
|
|
void BIF_icons_free_drawinfo(void *drawinfo);
|
|
|
|
#endif /* BIF_ICONS_H */
|