- ZTransp render now also delivers Z values and Speed vectors in passes Note that speed vectors accumulate within a pixel to store the minimum, so rendering ztransp on top of a non-moving plane won't give speed... Best results you get is by rendering it in a separate layer. The Z value stored is the closest visible transparent face in the pixel. Fixes: - Render to 'spare page' has been enabled again. Because of the strict separation of Render and UI, but especially because a 'render result' now can consist of unlimited images, I've not made this a Render feature. Instead, the render-window itself stores the 'spare' image... I also had to change the convention for it a bit. Now, instead of having two "render buffers" (which was a render feature), the RenderWindow will store each previous frame on a re-render. This storing will only start after you've pressed 'Jkey' once, but then always will happen for as long the rendered image is same size as previously. For clarity, I've also renamed the window title, to 'previous frame'. - RenderWindow shows alpha again on Akey - Display of the Zvalues in ImageWindow has been tweaked. White now denotes closest, and the color range goes from camera clip-sta to clip-end. - Bugfix: on splitting/merging/duplicating windows, the 3D Previewrender was not always freed correctly, potentially causing crashes or memory leaks.
90 lines
2.9 KiB
C++
90 lines
2.9 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 *****
|
|
*/
|
|
|
|
#include "DNA_vec_types.h"
|
|
|
|
struct View3D;
|
|
struct SpaceButs;
|
|
struct RenderInfo;
|
|
struct Image;
|
|
struct ScrArea;
|
|
struct uiBlock;
|
|
struct Render;
|
|
|
|
#define PREVIEW_RENDERSIZE 140
|
|
|
|
typedef void (*VectorDrawFunc)(int x, int y, int w, int h, float alpha);
|
|
|
|
/* stores rendered preview - is also used for icons */
|
|
typedef struct RenderInfo {
|
|
int pr_rectx;
|
|
int pr_recty;
|
|
short cury, status;
|
|
rcti disprect; /* storage for view3d preview rect */
|
|
unsigned int* rect;
|
|
struct Render *re; /* persistant render */
|
|
} RenderInfo;
|
|
|
|
/* ri->status */
|
|
#define PR_DBASE 1
|
|
#define PR_DISPRECT 2
|
|
#define PR_PROJECTED 4
|
|
#define PR_ROTATED 8
|
|
|
|
/* Render the preview
|
|
|
|
pr_method:
|
|
- PR_DRAW_RENDER: preview is rendered and drawn, as indicated by called context (buttons panel)
|
|
- PR_ICON_RENDER: the preview is not drawn and the function is not dynamic,
|
|
so no events are processed. Hopefully fast enough for at least 32x32
|
|
- PR_DO_RENDER: preview is rendered, not drawn, but events are processed for afterqueue,
|
|
in use for node editor now.
|
|
*/
|
|
|
|
#define PR_DRAW_RENDER 0
|
|
#define PR_ICON_RENDER 1
|
|
#define PR_DO_RENDER 2
|
|
|
|
void BIF_previewrender (struct ID *id, struct RenderInfo *ri, struct ScrArea *area, int pr_method);
|
|
void BIF_previewrender_buts (struct SpaceButs *sbuts);
|
|
void BIF_previewdraw (struct ScrArea *sa, struct uiBlock *block);
|
|
void BIF_preview_changed (short id_code);
|
|
|
|
void BIF_preview_init_dbase (void);
|
|
void BIF_preview_free_dbase (void);
|
|
|
|
void BIF_view3d_previewrender(struct ScrArea *sa);
|
|
void BIF_view3d_previewdraw (struct ScrArea *sa, struct uiBlock *block);
|
|
void BIF_view3d_previewrender_free(struct View3D *v3d);
|
|
void BIF_view3d_previewrender_clear(struct ScrArea *sa);
|
|
void BIF_view3d_previewrender_signal(struct ScrArea *sa, short signal);
|