Blender V4.3
AppCanvas.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11#include "../stroke/Canvas.h"
12#include "AppView.h"
13
14namespace Freestyle {
15
16class AppCanvas : public Canvas {
17 public:
18 AppCanvas();
19 AppCanvas(AppView *iViewer);
20 AppCanvas(const AppCanvas &iBrother);
21 virtual ~AppCanvas();
22
24 virtual void preDraw();
25
27 virtual void postDraw();
28
30 virtual void Erase();
31
32 /* init the canvas */
33 virtual void init();
34
36 virtual void readColorPixels(int x, int y, int w, int h, RGBImage &oImage) const;
38 virtual void readDepthPixels(int x, int y, int w, int h, GrayImage &oImage) const;
39
40 virtual BBox<Vec3r> scene3DBBox() const;
41
42 /* abstract */
43 virtual void RenderStroke(Stroke *);
44 virtual void update();
45
47 virtual int width() const;
48 virtual int height() const;
49 virtual BBox<Vec2i> border() const;
50 virtual float thickness() const;
51
53 inline const AppView *viewer() const
54 {
55 return _pViewer;
56 }
57
59 void setViewer(AppView *iViewer);
60
61 /* soc */
62 void setPassDiffuse(float *buf, int width, int height)
63 {
64 _pass_diffuse.buf = buf;
65 _pass_diffuse.width = width;
66 _pass_diffuse.height = height;
67 }
68 void setPassZ(float *buf, int width, int height)
69 {
70 _pass_z.buf = buf;
71 _pass_z.width = width;
72 _pass_z.height = height;
73 }
74
75 private:
76 struct {
77 float *buf;
79 } _pass_diffuse, _pass_z;
80};
81
82} /* namespace Freestyle */
Class to define a canvas designed to draw style modules.
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition btQuadWord.h:119
virtual void readDepthPixels(int x, int y, int w, int h, GrayImage &oImage) const
virtual BBox< Vec2i > border() const
Definition AppCanvas.cpp:58
const AppView * viewer() const
Definition AppCanvas.h:53
void setViewer(AppView *iViewer)
Definition AppCanvas.cpp:43
virtual void Erase()
virtual void RenderStroke(Stroke *)
virtual void preDraw()
Definition AppCanvas.cpp:73
void setPassZ(float *buf, int width, int height)
Definition AppCanvas.h:68
virtual BBox< Vec3r > scene3DBBox() const
Definition AppCanvas.cpp:68
virtual void postDraw()
Definition AppCanvas.cpp:92
virtual int height() const
void setPassDiffuse(float *buf, int width, int height)
Definition AppCanvas.h:62
virtual void readColorPixels(int x, int y, int w, int h, RGBImage &oImage) const
virtual float thickness() const
Definition AppCanvas.cpp:63
virtual int width() const
virtual void init()
Definition AppCanvas.cpp:78
virtual void update()
inherits from class Rep
Definition AppCanvas.cpp:20