29#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE) || defined(OSG_GLES3_AVAILABLE) && !defined(OSG_GL3_AVAILABLE)
30 #define GL_FRONT_LEFT 0x0400
31 #define GL_FRONT_RIGHT 0x0401
32 #define GL_BACK_LEFT 0x0402
33 #define GL_BACK_RIGHT 0x0403
101 inline void setClearMask(GLbitfield mask) { _clearMask = mask; applyMaskAction(CLEAR_MASK); }
198 double bottom,
double top,
199 double zNear,
double zFar);
203 double bottom,
double top);
207 double bottom,
double top,
208 double zNear,
double zFar);
213 double zNear,
double zFar);
224 double& bottom,
double& top,
225 double& zNear,
double& zFar)
const;
230 double& bottom,
double& top,
231 double& zNear,
double& zFar)
const;
239 double& zNear,
double& zFar)
const;
313 void setDrawBuffer(GLenum buffer) { _drawBuffer = buffer; applyMaskAction( DRAW_BUFFER ); }
320 void setReadBuffer(GLenum buffer) { _readBuffer = buffer; applyMaskAction( READ_BUFFER ); }
332 COLOR_BUFFER1 = COLOR_BUFFER0+1,
333 COLOR_BUFFER2 = COLOR_BUFFER0+2,
334 COLOR_BUFFER3 = COLOR_BUFFER0+3,
335 COLOR_BUFFER4 = COLOR_BUFFER0+4,
336 COLOR_BUFFER5 = COLOR_BUFFER0+5,
337 COLOR_BUFFER6 = COLOR_BUFFER0+6,
338 COLOR_BUFFER7 = COLOR_BUFFER0+7,
339 COLOR_BUFFER8 = COLOR_BUFFER0+8,
340 COLOR_BUFFER9 = COLOR_BUFFER0+9,
341 COLOR_BUFFER10 = COLOR_BUFFER0+10,
342 COLOR_BUFFER11 = COLOR_BUFFER0+11,
343 COLOR_BUFFER12 = COLOR_BUFFER0+12,
344 COLOR_BUFFER13 = COLOR_BUFFER0+13,
345 COLOR_BUFFER14 = COLOR_BUFFER0+14,
346 COLOR_BUFFER15 = COLOR_BUFFER0+15
359 unsigned int multisampleSamples = 0,
360 unsigned int multisampleColorSamples = 0);
364 unsigned int multisampleSamples = 0,
365 unsigned int multisampleColorSamples = 0);
373 _internalFormat(GL_NONE),
376 _mipMapGeneration(false),
377 _multisampleSamples(0),
378 _multisampleColorSamples(0) {}
382 if (_texture.valid())
return _texture->getTextureWidth();
383 if (_image.valid())
return _image->s();
389 if (_texture.valid())
return _texture->getTextureHeight();
390 if (_image.valid())
return _image->t();
396 if (_texture.valid())
return _texture->getTextureDepth();
397 if (_image.valid())
return _image->r();
436 RESIZE_ATTACHMENTS=2,
437 RESIZE_PROJECTIONMATRIX=4,
438 RESIZE_DEFAULT=RESIZE_VIEWPORT|RESIZE_ATTACHMENTS
443 void resize(
int width,
int height,
int resizeMask=RESIZE_DEFAULT);
474 IMPLICIT_DEPTH_BUFFER_ATTACHMENT = DisplaySettings::IMPLICIT_DEPTH_BUFFER_ATTACHMENT,
475 IMPLICIT_STENCIL_BUFFER_ATTACHMENT = DisplaySettings::IMPLICIT_STENCIL_BUFFER_ATTACHMENT,
476 IMPLICIT_COLOR_BUFFER_ATTACHMENT = DisplaySettings::IMPLICIT_COLOR_BUFFER_ATTACHMENT,
477 USE_DISPLAY_SETTINGS_MASK = (~0)
484 _implicitBufferAttachmentRenderMask = renderMask;
485 _implicitBufferAttachmentResolveMask = resolveMask;
490 _implicitBufferAttachmentRenderMask = implicitBufferAttachmentRenderMask;
495 _implicitBufferAttachmentResolveMask = implicitBufferAttachmentResolveMask;
500 return _implicitBufferAttachmentRenderMask;
510 if( effectiveMask && _implicitBufferAttachmentRenderMask == USE_DISPLAY_SETTINGS_MASK )
512 const DisplaySettings * ds = _displaySettings.valid() ? _displaySettings.get() : DisplaySettings::instance().get();
517 return _implicitBufferAttachmentRenderMask;
523 return _implicitBufferAttachmentResolveMask;
533 if( effectiveMask && _implicitBufferAttachmentResolveMask == USE_DISPLAY_SETTINGS_MASK )
535 const DisplaySettings * ds = _displaySettings.valid() ? _displaySettings.get() : DisplaySettings::instance().get();
540 return _implicitBufferAttachmentResolveMask;
606 operator () (renderInfo);
608 if (_nestedCallback.valid())
609 ((
const DrawCallback*)_nestedCallback.get())->run(renderInfo);
621 if (_nestedCallback.valid())
622 _nestedCallback->resizeGLObjectBuffers(maxSize);
630 if (_nestedCallback.valid())
631 _nestedCallback->releaseGLObjects(state);
650 if (_initialDrawCallback.valid()) _initialDrawCallback->addNestedCallback(nc);
651 else setInitialDrawCallback(nc);
660 if (nc !=
NULL && _initialDrawCallback.valid())
662 if (_initialDrawCallback == nc)
666 setInitialDrawCallback(new_nested_callback.
get());
668 else _initialDrawCallback->removeNestedCallback(nc);
688 if (_preDrawCallback.valid()) _preDrawCallback->addNestedCallback(nc);
689 else setPreDrawCallback(nc);
698 if (nc !=
NULL && _preDrawCallback.valid())
700 if (_preDrawCallback == nc)
704 setPreDrawCallback(new_nested_callback.
get());
706 else _preDrawCallback->removeNestedCallback(nc);
726 if (_postDrawCallback.valid()) _postDrawCallback->addNestedCallback(nc);
727 else setPostDrawCallback(nc);
736 if (nc !=
NULL && _postDrawCallback.valid())
738 if (_postDrawCallback == nc)
742 setPostDrawCallback(new_nested_callback.
get());
744 else _postDrawCallback->removeNestedCallback(nc);
764 if (_finalDrawCallback.valid()) _finalDrawCallback->addNestedCallback(nc);
765 else setFinalDrawCallback(nc);
774 if (nc !=
NULL && _finalDrawCallback.valid())
776 if (_finalDrawCallback == nc)
780 setFinalDrawCallback(new_nested_callback.
get());
782 else _finalDrawCallback->removeNestedCallback(nc);
Simple container for specifying which CPU a thread should have affinity with. An empty Affinity....
Definition Affinity:34
This class provides an object-oriented thread mutex interface.
Definition Mutex:31
osg::Callback * getNestedCallback()
Definition Callback:89
void setNestedCallback(osg::Callback *cb)
Definition Callback:88
void setViewport(int x, int y, int width, int height)
osg::Vec4 _clearAccum
Definition Camera:826
ImplicitBufferAttachmentMask getImplicitBufferAttachmentRenderMask(bool effectiveMask) const
Definition Camera:508
BufferAttachmentMap _bufferAttachmentMap
Definition Camera:847
void setProjectionMatrix(const osg::Matrixf &matrix)
Definition Camera:191
ColorMask * getColorMask()
Definition Camera:146
OpenThreads::Affinity _affinity
Definition Camera:853
osg::ref_ptr< osg::Stats > _stats
Definition Camera:818
ref_ptr< DrawCallback > _postDrawCallback
Definition Camera:863
ProjectionResizePolicy _projectionResizePolicy
Definition Camera:834
ImplicitBufferAttachmentMask getImplicitBufferAttachmentRenderMask() const
Definition Camera:498
osg::Matrixd & getProjectionMatrix()
Definition Camera:216
void removePostDrawCallback(const ref_ptr< T > &nc)
Definition Camera:748
void setRenderTargetImplementation(RenderTargetImplementation impl, RenderTargetImplementation fallback)
GLbitfield _clearMask
Definition Camera:824
void attach(BufferComponent buffer, GLenum internalFormat)
void setClearDepth(double depth)
Definition Camera:122
virtual bool computeWorldToLocalMatrix(Matrix &matrix, NodeVisitor *) const
void removeInitialDrawCallback(const ref_ptr< T > &nc)
Definition Camera:672
void setRenderTargetImplementation(RenderTargetImplementation impl)
Camera(const Camera &, const CopyOp ©op=CopyOp::SHALLOW_COPY)
int getRenderOrderNum() const
Definition Camera:284
RenderOrder
Definition Camera:269
@ PRE_RENDER
Definition Camera:270
@ NESTED_RENDER
Definition Camera:271
void setViewMatrix(const osg::Matrixd &matrix)
Definition Camera:247
TransformOrder getTransformOrder() const
Definition Camera:173
int _clearStencil
Definition Camera:828
void setFinalDrawCallback(DrawCallback *cb)
Definition Camera:751
void setProjectionMatrix(const osg::Matrixd &matrix)
Definition Camera:194
RenderTargetImplementation
Definition Camera:290
@ FRAME_BUFFER_OBJECT
Definition Camera:291
@ PIXEL_BUFFER_RTT
Definition Camera:292
@ PIXEL_BUFFER
Definition Camera:293
@ FRAME_BUFFER
Definition Camera:294
void removeFinalDrawCallback(DrawCallback *nc)
Definition Camera:772
static const unsigned int FACE_CONTROLLED_BY_GEOMETRY_SHADER
Definition Camera:349
void addPostDrawCallback(const ref_ptr< T > &nc)
Definition Camera:731
const osg::Vec4 & getClearColor() const
Definition Camera:111
ImplicitBufferAttachmentMask getImplicitBufferAttachmentResolveMask() const
Definition Camera:521
unsigned int getAttachmentMapModifiedCount() const
Definition Camera:427
bool _allowEventFocus
Definition Camera:820
void setInitialDrawCallback(DrawCallback *cb)
Definition Camera:637
void attach(BufferComponent buffer, osg::Image *image, unsigned int multisampleSamples=0, unsigned int multisampleColorSamples=0)
const ColorMask * getColorMask() const
Definition Camera:143
ref_ptr< Object > _renderingCache
Definition Camera:859
void addPostDrawCallback(DrawCallback *nc)
Definition Camera:722
void attach(BufferComponent buffer, osg::Texture *texture, unsigned int level=0, unsigned int face=0, bool mipMapGeneration=false, unsigned int multisampleSamples=0, unsigned int multisampleColorSamples=0)
void addPreDrawCallback(DrawCallback *nc)
Definition Camera:684
DrawCallback * getPostDrawCallback()
Definition Camera:716
DrawCallback * getPreDrawCallback()
Definition Camera:678
const osg::DisplaySettings * getDisplaySettings() const
Definition Camera:96
Matrixd _projectionMatrix
Definition Camera:836
void removePostDrawCallback(DrawCallback *nc)
Definition Camera:734
void removeInitialDrawCallback(DrawCallback *nc)
Definition Camera:658
OperationThread * getCameraThread()
Definition Camera:556
unsigned int _attachmentMapModifiedCount
Definition Camera:851
osg::Object * getRenderingCache()
Definition Camera:587
void setColorMask(osg::ColorMask *colorMask)
void setDisplaySettings(osg::DisplaySettings *ds)
Definition Camera:90
void addFinalDrawCallback(DrawCallback *nc)
Definition Camera:760
RenderTargetImplementation getRenderTargetImplementation() const
Definition Camera:305
Matrixd getInverseViewMatrix() const
View * _view
Definition Camera:816
void createCameraThread()
OpenThreads::Affinity & getProcessorAffinity()
Definition Camera:546
void resizeAttachments(int width, int height)
bool getProjectionMatrixAsOrtho(double &left, double &right, double &bottom, double &top, double &zNear, double &zFar) const
BufferAttachmentMap & getBufferAttachmentMap()
Definition Camera:414
GLenum getReadBuffer() const
Definition Camera:323
int _renderOrderNum
Definition Camera:840
GLenum _readBuffer
Definition Camera:843
void setProjectionMatrixAsFrustum(double left, double right, double bottom, double top, double zNear, double zFar)
const osg::Object * getRenderingCache() const
Definition Camera:590
void setViewMatrixAsLookAt(const osg::Vec3d &eye, const osg::Vec3d ¢er, const osg::Vec3d &up)
void removeFinalDrawCallback(const ref_ptr< T > &nc)
Definition Camera:786
osg::Vec4 _clearColor
Definition Camera:825
Viewport * getViewport()
Definition Camera:159
const DrawCallback * getPostDrawCallback() const
Definition Camera:719
osg::DisplaySettings * getDisplaySettings()
Definition Camera:93
osg::Stats * getStats()
Definition Camera:74
ImplicitBufferAttachmentMask _implicitBufferAttachmentRenderMask
Definition Camera:848
void setClearAccum(const osg::Vec4 &color)
Definition Camera:115
int ImplicitBufferAttachmentMask
Definition Camera:480
const osg::Matrixd & getViewMatrix() const
Definition Camera:253
void setProjectionResizePolicy(ProjectionResizePolicy policy)
Definition Camera:184
virtual const Camera * asCamera() const
Definition Camera:57
RenderOrder _renderOrder
Definition Camera:839
virtual bool computeLocalToWorldMatrix(Matrix &matrix, NodeVisitor *) const
virtual void resizeGLObjectBuffers(unsigned int maxSize)
void removePreDrawCallback(const ref_ptr< T > &nc)
Definition Camera:710
void setDrawBuffer(GLenum buffer)
Definition Camera:313
ImplicitBufferAttachment
Definition Camera:473
DrawCallback * getFinalDrawCallback()
Definition Camera:754
void getViewMatrixAsLookAt(osg::Vec3f &eye, osg::Vec3f ¢er, osg::Vec3f &up, float lookDistance=1.0f) const
void setProjectionMatrixAsOrtho2D(double left, double right, double bottom, double top)
RenderTargetImplementation getRenderTargetFallback() const
Definition Camera:308
void getViewMatrixAsLookAt(osg::Vec3d &eye, osg::Vec3d ¢er, osg::Vec3d &up, double lookDistance=1.0) const
void setProcessorAffinity(const OpenThreads::Affinity &affinity)
GLenum _drawBuffer
Definition Camera:842
osg::ref_ptr< osg::DisplaySettings > _displaySettings
Definition Camera:822
void setColorMask(bool red, bool green, bool blue, bool alpha)
double getClearDepth() const
Definition Camera:125
void setPreDrawCallback(DrawCallback *cb)
Definition Camera:675
void setClearColor(const osg::Vec4 &color)
Definition Camera:108
void setCameraThread(OperationThread *gt)
RenderTargetImplementation _renderTargetFallback
Definition Camera:846
virtual Camera * asCamera()
Definition Camera:56
void setGraphicsContext(GraphicsContext *context)
virtual void inheritCullSettings(const CullSettings &settings, unsigned int inheritanceMask)
const OperationThread * getCameraThread() const
Definition Camera:559
RenderTargetImplementation _renderTargetImplementation
Definition Camera:845
const DrawCallback * getFinalDrawCallback() const
Definition Camera:757
void resize(int width, int height, int resizeMask=RESIZE_DEFAULT)
ref_ptr< ColorMask > _colorMask
Definition Camera:830
void setClearStencil(int stencil)
Definition Camera:129
void setPostDrawCallback(DrawCallback *cb)
Definition Camera:713
const OpenThreads::Affinity & getProcessorAffinity() const
Definition Camera:547
const osg::Vec4 & getClearAccum() const
Definition Camera:118
DrawCallback * getInitialDrawCallback()
Definition Camera:640
void setAttachmentMapModifiedCount(unsigned int v)
Definition Camera:424
ref_ptr< GraphicsOperation > _renderer
Definition Camera:858
void removePreDrawCallback(DrawCallback *nc)
Definition Camera:696
void addInitialDrawCallback(const ref_ptr< T > &nc)
Definition Camera:655
void setClearMask(GLbitfield mask)
Definition Camera:101
GLenum getDrawBuffer() const
Definition Camera:316
const osg::GraphicsOperation * getRenderer() const
Definition Camera:580
osg::GraphicsOperation * getRenderer()
Definition Camera:577
ref_ptr< DrawCallback > _initialDrawCallback
Definition Camera:861
void setViewMatrix(const osg::Matrixf &matrix)
Definition Camera:244
bool getProjectionMatrixAsPerspective(double &fovy, double &aspectRatio, double &zNear, double &zFar) const
const DrawCallback * getPreDrawCallback() const
Definition Camera:681
void setProjectionMatrixAsOrtho(double left, double right, double bottom, double top, double zNear, double zFar)
ResizeMask
Definition Camera:434
bool isRenderToTextureCamera() const
TransformOrder _transformOrder
Definition Camera:833
OpenThreads::Mutex * getDataChangeMutex() const
Definition Camera:788
const osg::Stats * getStats() const
Definition Camera:77
void setImplicitBufferAttachmentResolveMask(ImplicitBufferAttachmentMask implicitBufferAttachmentResolveMask)
Definition Camera:493
void detach(BufferComponent buffer)
void addInitialDrawCallback(DrawCallback *nc)
Definition Camera:646
bool getProjectionMatrixAsFrustum(double &left, double &right, double &bottom, double &top, double &zNear, double &zFar) const
void setViewport(osg::Viewport *viewport)
void dirtyAttachmentMap()
Definition Camera:421
OpenThreads::Mutex _dataChangeMutex
Definition Camera:813
void setRenderer(osg::GraphicsOperation *rc)
Definition Camera:574
const Viewport * getViewport() const
Definition Camera:156
double _clearDepth
Definition Camera:827
GLbitfield getClearMask() const
Definition Camera:104
const View * getView() const
Definition Camera:66
std::map< BufferComponent, Attachment > BufferAttachmentMap
Definition Camera:411
ProjectionResizePolicy
Definition Camera:176
@ FIXED
Definition Camera:177
@ HORIZONTAL
Definition Camera:178
const osg::Matrixd & getProjectionMatrix() const
Definition Camera:219
void setImplicitBufferAttachmentMask(ImplicitBufferAttachmentMask renderMask=DisplaySettings::DEFAULT_IMPLICIT_BUFFER_ATTACHMENT, ImplicitBufferAttachmentMask resolveMask=DisplaySettings::DEFAULT_IMPLICIT_BUFFER_ATTACHMENT)
Definition Camera:482
virtual void releaseGLObjects(osg::State *=0) const
ref_ptr< DrawCallback > _finalDrawCallback
Definition Camera:864
ref_ptr< OperationThread > _cameraThread
Definition Camera:854
void setReadBuffer(GLenum buffer)
Definition Camera:320
void setImplicitBufferAttachmentRenderMask(ImplicitBufferAttachmentMask implicitBufferAttachmentRenderMask)
Definition Camera:488
void setStats(osg::Stats *stats)
Definition Camera:71
void addFinalDrawCallback(const ref_ptr< T > &nc)
Definition Camera:769
void setRenderingCache(osg::Object *rc)
Definition Camera:584
ImplicitBufferAttachmentMask getImplicitBufferAttachmentResolveMask(bool effectiveMask) const
Definition Camera:531
ref_ptr< Viewport > _viewport
Definition Camera:831
ref_ptr< GraphicsContext > _graphicsContext
Definition Camera:856
osg::Matrixd & getViewMatrix()
Definition Camera:250
ref_ptr< DrawCallback > _preDrawCallback
Definition Camera:862
const DrawCallback * getInitialDrawCallback() const
Definition Camera:643
ImplicitBufferAttachmentMask _implicitBufferAttachmentResolveMask
Definition Camera:849
void addPreDrawCallback(const ref_ptr< T > &nc)
Definition Camera:693
GraphicsContext * getGraphicsContext()
Definition Camera:567
View * getView()
Definition Camera:63
int getClearStencil() const
Definition Camera:132
void setRenderOrder(RenderOrder order, int orderNum=0)
Definition Camera:278
ProjectionResizePolicy getProjectionResizePolicy() const
Definition Camera:187
void setTransformOrder(TransformOrder order)
Definition Camera:170
BufferComponent
Definition Camera:326
@ COLOR_BUFFER
Definition Camera:330
@ DEPTH_BUFFER
Definition Camera:327
@ PACKED_DEPTH_STENCIL_BUFFER
Definition Camera:329
@ STENCIL_BUFFER
Definition Camera:328
@ COLOR_BUFFER0
Definition Camera:331
const GraphicsContext * getGraphicsContext() const
Definition Camera:570
bool getAllowEventFocus() const
Definition Camera:86
void setView(View *view)
Definition Camera:60
Matrixd _viewMatrix
Definition Camera:837
TransformOrder
Definition Camera:164
@ PRE_MULTIPLY
Definition Camera:165
RenderOrder getRenderOrder() const
Definition Camera:281
void setAllowEventFocus(bool focus)
Definition Camera:82
void setProjectionMatrixAsPerspective(double fovy, double aspectRatio, double zNear, double zFar)
const BufferAttachmentMap & getBufferAttachmentMap() const
Definition Camera:417
Definition CullSettings:28
Definition DisplaySettings:34
ImplicitBufferAttachmentMask getImplicitBufferAttachmentResolveMask() const
Definition DisplaySettings:254
ImplicitBufferAttachmentMask getImplicitBufferAttachmentRenderMask() const
Definition DisplaySettings:251
Definition GraphicsContext:30
Definition NodeVisitor:82
Definition OperationThread:154
T * get() const
Definition ref_ptr:117
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
#define NULL
Definition osg/Export:55
#define OSG_EXPORT
Definition osg/Export:39
bool operator()(const Camera *lhs, const Camera *rhs) const
Definition Camera:871
GLenum _internalFormat
Definition Camera:401
unsigned int _level
Definition Camera:404
ref_ptr< Texture > _texture
Definition Camera:403
Attachment()
Definition Camera:372
int height() const
Definition Camera:387
unsigned int _multisampleColorSamples
Definition Camera:408
bool _mipMapGeneration
Definition Camera:406
int width() const
Definition Camera:380
int depth() const
Definition Camera:394
unsigned int _face
Definition Camera:405
ref_ptr< Image > _image
Definition Camera:402
unsigned int _multisampleSamples
Definition Camera:407
void run(osg::RenderInfo &renderInfo) const
Definition Camera:604
virtual void releaseGLObjects(osg::State *state=0) const
Definition Camera:628
META_Object(osg, DrawCallback)
DrawCallback(const DrawCallback &org, const CopyOp ©op)
Definition Camera:598
DrawCallback()
Definition Camera:596
virtual void resizeGLObjectBuffers(unsigned int maxSize)
Definition Camera:619
Definition GraphicsThread:36