From Stephan Huber, OSX and iOS Video support via a QTKit plugin from OSX 10.7 and before, and an AVFoundation plugin for iOS and OSX10.8 and later.
This commit is contained in:
@@ -442,12 +442,31 @@ class OSG_EXPORT Image : public BufferData
|
||||
|
||||
/** Pass frame information to the custom Image classes, to be called only when objects associated with imagery are not culled.*/
|
||||
virtual void setFrameLastRendered(const osg::FrameStamp* /*frameStamp*/) {}
|
||||
|
||||
class DimensionsChangedCallback : public osg::Referenced {
|
||||
public:
|
||||
DimensionsChangedCallback() : osg::Referenced() {}
|
||||
virtual void operator()(osg::Image* image) = 0;
|
||||
};
|
||||
|
||||
typedef std::vector< osg::ref_ptr<DimensionsChangedCallback> > DimensionsChangedCallbackVector;
|
||||
|
||||
void addDimensionsChangedCallback(DimensionsChangedCallback* cb);
|
||||
void removeDimensionsChangedCallback(DimensionsChangedCallback* cb);
|
||||
|
||||
protected :
|
||||
|
||||
virtual ~Image();
|
||||
|
||||
Image& operator = (const Image&) { return *this; }
|
||||
|
||||
void handleDimensionsChangedCallbacks()
|
||||
{
|
||||
for(DimensionsChangedCallbackVector::iterator i = _dimensionsChangedCallbacks.begin(); i != _dimensionsChangedCallbacks.end(); ++i)
|
||||
{
|
||||
(*i)->operator()(this);
|
||||
}
|
||||
}
|
||||
|
||||
std::string _fileName;
|
||||
WriteHint _writeHint;
|
||||
@@ -473,6 +492,8 @@ class OSG_EXPORT Image : public BufferData
|
||||
MipmapDataType _mipmapData;
|
||||
|
||||
ref_ptr<PixelBufferObject> _bufferObject;
|
||||
|
||||
DimensionsChangedCallbackVector _dimensionsChangedCallbacks;
|
||||
};
|
||||
|
||||
class Geode;
|
||||
|
||||
@@ -57,7 +57,7 @@ class OSG_EXPORT ImageStream : public Image
|
||||
|
||||
virtual void quit(bool /*waitForThreadToExit*/ = true) {}
|
||||
|
||||
StreamStatus getStatus() { return _status; }
|
||||
StreamStatus getStatus() const { return _status; }
|
||||
|
||||
|
||||
enum LoopingMode
|
||||
@@ -89,6 +89,10 @@ class OSG_EXPORT ImageStream : public Image
|
||||
|
||||
virtual void setVolume(float) {}
|
||||
virtual float getVolume() const { return 0.0f; }
|
||||
|
||||
/// set the balance of the audio: -1 = left, 0 = center, 1 = right
|
||||
virtual float getAudioBalance() { return 0.0f; }
|
||||
virtual void setAudioBalance(float b) {}
|
||||
|
||||
typedef std::vector< osg::ref_ptr<osg::AudioStream> > AudioStreams;
|
||||
void setAudioStreams(const AudioStreams& asl) { _audioStreams = asl; }
|
||||
|
||||
Reference in New Issue
Block a user