Murl::IVideoSurface Interface Referenceabstract

The video surface interface. More...

#include "murl_i_video_surface.h"

Inheritance diagram for Murl::IVideoSurface:

Public Member Functions

virtual ~IVideoSurface ()
 The destructor.
 
virtual IVideoSurfaceClone (IEnums::PixelFormat pixelFormat) const =0
 Create a clone of the surface with a specified pixel format. More...
 
virtual IVideoSurfaceClone (UInt32 pixelSizeX, UInt32 pixelSizeY, const IVideoScaler *scaler=0, Real gamma=1.0f) const =0
 Create a clone of the surface with a specified size. More...
 
virtual IVideoSurfaceClone (IEnums::PixelFormat pixelFormat, UInt32 pixelSizeX, UInt32 pixelSizeY, const IVideoScaler *scaler=0, Real gamma=1.0f) const =0
 Create a clone of the surface with a specified pixel format and size. More...
 
virtual IVideoSurfaceCloneRotated (IEnums::Orientation orientation) const =0
 Create a clone of the surface with a specified orientation. More...
 
virtual IVideoSurfaceCloneRotated (IEnums::Orientation orientation, IEnums::PixelFormat pixelFormat) const =0
 Create a clone of the surface with a specified orientation and pixel format. More...
 
virtual IVideoSurfaceCloneFrame (SInt32 positionX, SInt32 positionY, UInt32 pixelSizeX, UInt32 pixelSizeY) const =0
 Create a surface and copy a specified rectangular region. More...
 
virtual UInt32 GetPixelSizeX () const =0
 Get the number of horizontal pixels. More...
 
virtual UInt32 GetPixelSizeY () const =0
 Get the number of vertical pixels. More...
 
virtual UInt32 GetBytesPerLine () const =0
 Get the number of bytes per line. More...
 
virtual UInt32 GetBytesPerPixel () const =0
 Get the number of bytes per pixel. More...
 
virtual IEnums::PixelFormat GetPixelFormat () const =0
 Get the pixel format of the surface. More...
 
virtual const ConstDataGetPixels () const =0
 Get the data object which is holding the pixels. More...
 
virtual const MutableDataGetMutablePixels ()=0
 Get the mutable data object which is holding the pixels. More...
 
virtual Color GetPixel (SInt32 positionX, SInt32 positionY) const =0
 Get the color of a pixel. More...
 
virtual Bool SetPixel (SInt32 positionX, SInt32 positionY, const Color &color)=0
 Set the color of a pixel. More...
 
virtual Bool FlipX ()=0
 Horizontally flip the surface. More...
 
virtual Bool FlipY ()=0
 Vertically flip the surface. More...
 
virtual Bool Blit (const IVideoSurface *source, SInt32 destPositionX, SInt32 destPositionY)=0
 Copy a source surface to a specified position. More...
 
virtual Bool Blit (const IVideoSurface *source, SInt32 sourcePositionX, SInt32 sourcePositionY, SInt32 destPositionX, SInt32 destPositionY, UInt32 pixelSizeX, UInt32 pixelSizeY)=0
 Copy a rectangular region from a source surface to a specified position. More...
 
virtual Bool BlitScaled (const IVideoSurface *source, const IVideoScaler *scaler=0, Real gamma=1.0f)=0
 Copy a source surface of different size. More...
 
virtual Bool Clear (const Color &clearColor)=0
 Clear the surface. More...
 
virtual Bool Clear (SInt32 positionX, SInt32 positionY, UInt32 pixelSizeX, UInt32 pixelSizeY, const Color &clearColor)=0
 Clear a rectangular region of the surface. More...
 
virtual Bool GaussBlur (Real strength)=0
 Perform a Gauss blur operation on the surface. More...
 
virtual Bool GaussBlur (SInt32 positionX, SInt32 positionY, UInt32 pixelSizeX, UInt32 pixelSizeY, Real strength)=0
 Perform a Gauss blur operation on the surface. More...
 
virtual Bool ApplyMatte (const Color &matteColor, Real matteThreshold=0)=0
 Apply a matte color using a specified alpha threshold value. More...
 
virtual Bool ApplyMatte (SInt32 positionX, SInt32 positionY, UInt32 pixelSizeX, UInt32 pixelSizeY, const Color &matteColor, Real matteThreshold=0)=0
 Apply a matte color to a rectangular region using a specified alpha threshold value. More...
 
virtual Bool RenderText (const IFont *font, const String &text, const Color &textColor, const Color &backgroundColor, Bool clearSurface, Bool enableWordWrap, Real containerPosX, Real containerPosY, Real containerSizeX, Real containerSizeY, IEnums::TextAlignmentX alignX, IEnums::TextAlignmentY alignY)=0
 Render some text into the surface using a given font. More...
 
virtual Bool IsColumnEmpty (UInt32 column, Real threshold) const =0
 Check if a column is empty using a specified alpha threshold value. More...
 
virtual Bool IsRowEmpty (UInt32 row, Real threshold) const =0
 Check if a row is empty using a specified alpha threshold value. More...
 
virtual SInt32 ClipSizeXRight (SInt32 positionX, SInt32 sizeX) const =0
 Clip the width relative to a position and the right border of the surface. More...
 
virtual SInt32 ClipSizeYBottom (SInt32 positionY, SInt32 sizeY) const =0
 Clip the height relative to a position and the bottom border of the surface. More...
 
virtual Bool Evict ()=0
 Evict restoreable resoures. More...
 
virtual Bool Restore ()=0
 Restore evictable resoures freed by Evict(). More...
 

Detailed Description

The video surface interface.

The video surface stores properties and pixel data of a graphic image. The video surface offers cloning of surfaces of different pixel format and size, copying rectangular regions from other video surfaces and applying matte colors.

Member Function Documentation

◆ Clone() [1/3]

virtual IVideoSurface* Murl::IVideoSurface::Clone ( IEnums::PixelFormat  pixelFormat) const
pure virtual

Create a clone of the surface with a specified pixel format.

Parameters
pixelFormatThe pixel format of the new surface.
Returns
The new surface or null if conversion is not available.

Implemented in Murl::Util::VideoSurface.

◆ Clone() [2/3]

virtual IVideoSurface* Murl::IVideoSurface::Clone ( UInt32  pixelSizeX,
UInt32  pixelSizeY,
const IVideoScaler scaler = 0,
Real  gamma = 1.0f 
) const
pure virtual

Create a clone of the surface with a specified size.

Scaling to different size is supported for IEnums::PIXEL_FORMAT_R8_G8_B8_A8 and IEnums::PIXEL_FORMAT_R8_G8_B8 only.

Parameters
pixelSizeXThe number of horizontal pixels of the new surface.
pixelSizeYThe number of vertical pixels of the new surface.
scalerPointer to a scaler object or null to scale using the BoxVideoScaler.
gammaThe gamma value used during cloning.
Returns
The new surface or null if conversion is not available.

Implemented in Murl::Util::VideoSurface.

◆ Clone() [3/3]

virtual IVideoSurface* Murl::IVideoSurface::Clone ( IEnums::PixelFormat  pixelFormat,
UInt32  pixelSizeX,
UInt32  pixelSizeY,
const IVideoScaler scaler = 0,
Real  gamma = 1.0f 
) const
pure virtual

Create a clone of the surface with a specified pixel format and size.

Scaling to different size is supported for IEnums::PIXEL_FORMAT_R8_G8_B8_A8 and IEnums::PIXEL_FORMAT_R8_G8_B8 only.

Parameters
pixelFormatThe pixel format of the new surface.
pixelSizeXThe number of horizontal pixels of the new surface.
pixelSizeYThe number of vertical pixels of the new surface.
scalerPointer to a scaler object or null to scale using the BoxVideoScaler.
gammaThe gamma value used during cloning.
Returns
The new surface or null if conversion is not available.

Implemented in Murl::Util::VideoSurface.

◆ CloneRotated() [1/2]

virtual IVideoSurface* Murl::IVideoSurface::CloneRotated ( IEnums::Orientation  orientation) const
pure virtual

Create a clone of the surface with a specified orientation.

Parameters
orientationThe orientation of the new surface.
Returns
The new surface or null if conversion is not available.

Implemented in Murl::Util::VideoSurface.

◆ CloneRotated() [2/2]

virtual IVideoSurface* Murl::IVideoSurface::CloneRotated ( IEnums::Orientation  orientation,
IEnums::PixelFormat  pixelFormat 
) const
pure virtual

Create a clone of the surface with a specified orientation and pixel format.

Parameters
orientationThe orientation of the new surface.
pixelFormatThe pixel format of the new surface.
Returns
The new surface or null if conversion is not available.

Implemented in Murl::Util::VideoSurface.

◆ CloneFrame()

virtual IVideoSurface* Murl::IVideoSurface::CloneFrame ( SInt32  positionX,
SInt32  positionY,
UInt32  pixelSizeX,
UInt32  pixelSizeY 
) const
pure virtual

Create a surface and copy a specified rectangular region.

Parameters
positionXThe source x-position of the region.
positionYThe source y-position of the region.
pixelSizeXThe number of horizontal pixels of the region.
pixelSizeYThe number of vertical pixels of the region.
Returns
The new surface with the specified region's size.

Implemented in Murl::Util::VideoSurface.

◆ GetPixelSizeX()

virtual UInt32 Murl::IVideoSurface::GetPixelSizeX ( ) const
pure virtual

Get the number of horizontal pixels.

Returns
The number of horizontal pixels.

Implemented in Murl::Util::VideoSurface.

◆ GetPixelSizeY()

virtual UInt32 Murl::IVideoSurface::GetPixelSizeY ( ) const
pure virtual

Get the number of vertical pixels.

Returns
The number of vertical pixels.

Implemented in Murl::Util::VideoSurface.

◆ GetBytesPerLine()

virtual UInt32 Murl::IVideoSurface::GetBytesPerLine ( ) const
pure virtual

Get the number of bytes per line.

Returns
The number of bytes per line.

Implemented in Murl::Util::VideoSurface.

◆ GetBytesPerPixel()

virtual UInt32 Murl::IVideoSurface::GetBytesPerPixel ( ) const
pure virtual

Get the number of bytes per pixel.

Returns
The number of bytes per pixel.

Implemented in Murl::Util::VideoSurface.

◆ GetPixelFormat()

virtual IEnums::PixelFormat Murl::IVideoSurface::GetPixelFormat ( ) const
pure virtual

Get the pixel format of the surface.

Returns
The pixel format of the surface.

Implemented in Murl::Util::VideoSurface.

◆ GetPixels()

virtual const ConstData& Murl::IVideoSurface::GetPixels ( ) const
pure virtual

Get the data object which is holding the pixels.

Returns
The data object which is holding the pixels.

Implemented in Murl::Util::VideoSurface.

◆ GetMutablePixels()

virtual const MutableData& Murl::IVideoSurface::GetMutablePixels ( )
pure virtual

Get the mutable data object which is holding the pixels.

Returns
The mutable data object which is holding the pixels.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ GetPixel()

virtual Color Murl::IVideoSurface::GetPixel ( SInt32  positionX,
SInt32  positionY 
) const
pure virtual

Get the color of a pixel.

Parameters
positionXThe pixel x-position.
positionYThe pixel y-position.
Returns
The color of the pixel at the specified position.

Implemented in Murl::Util::VideoSurface.

◆ SetPixel()

virtual Bool Murl::IVideoSurface::SetPixel ( SInt32  positionX,
SInt32  positionY,
const Color color 
)
pure virtual

Set the color of a pixel.

Parameters
positionXThe pixel x-position.
positionYThe pixel y-position.
colorThe color of the pixel to set.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface.

◆ FlipX()

virtual Bool Murl::IVideoSurface::FlipX ( )
pure virtual

Horizontally flip the surface.

Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ FlipY()

virtual Bool Murl::IVideoSurface::FlipY ( )
pure virtual

Vertically flip the surface.

Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ Blit() [1/2]

virtual Bool Murl::IVideoSurface::Blit ( const IVideoSurface source,
SInt32  destPositionX,
SInt32  destPositionY 
)
pure virtual

Copy a source surface to a specified position.

All cases of overlapping are supported.

Parameters
sourceThe source surface.
destPositionXThe destination x-position.
destPositionYThe destination y-position.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface.

◆ Blit() [2/2]

virtual Bool Murl::IVideoSurface::Blit ( const IVideoSurface source,
SInt32  sourcePositionX,
SInt32  sourcePositionY,
SInt32  destPositionX,
SInt32  destPositionY,
UInt32  pixelSizeX,
UInt32  pixelSizeY 
)
pure virtual

Copy a rectangular region from a source surface to a specified position.

All cases of overlapping are supported.

Parameters
sourceThe source surface.
sourcePositionXThe source x-position.
sourcePositionYThe source y-position.
destPositionXThe destination x-position.
destPositionYThe destination y-position.
pixelSizeXThe number of horizontal pixels to copy.
pixelSizeYThe number of vertical pixels to copy.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ BlitScaled()

virtual Bool Murl::IVideoSurface::BlitScaled ( const IVideoSurface source,
const IVideoScaler scaler = 0,
Real  gamma = 1.0f 
)
pure virtual

Copy a source surface of different size.

Scaling to different size is supported for IEnums::PIXEL_FORMAT_R8_G8_B8_A8 and IEnums::PIXEL_FORMAT_R8_G8_B8 only.

Parameters
sourceThe source surface.
scalerPointer to a scaler object or null to scale using the BoxVideoScaler.
gammaThe gamma value used during scaling.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ Clear() [1/2]

virtual Bool Murl::IVideoSurface::Clear ( const Color clearColor)
pure virtual

Clear the surface.

Parameters
clearColorThe clear color to apply.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface.

◆ Clear() [2/2]

virtual Bool Murl::IVideoSurface::Clear ( SInt32  positionX,
SInt32  positionY,
UInt32  pixelSizeX,
UInt32  pixelSizeY,
const Color clearColor 
)
pure virtual

Clear a rectangular region of the surface.

Parameters
positionXThe source x-position of the region.
positionYThe source y-position of the region.
pixelSizeXThe number of horizontal pixels of the region.
pixelSizeYThe number of vertical pixels of the region.
clearColorThe clear color to apply.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ GaussBlur() [1/2]

virtual Bool Murl::IVideoSurface::GaussBlur ( Real  strength)
pure virtual

Perform a Gauss blur operation on the surface.

Parameters
strengthThe blur filter strength.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface.

◆ GaussBlur() [2/2]

virtual Bool Murl::IVideoSurface::GaussBlur ( SInt32  positionX,
SInt32  positionY,
UInt32  pixelSizeX,
UInt32  pixelSizeY,
Real  strength 
)
pure virtual

Perform a Gauss blur operation on the surface.

Parameters
positionXThe x-position of the region.
positionYThe y-position of the region.
pixelSizeXThe number of horizontal pixels of the region.
pixelSizeYThe number of vertical pixels of the region.
strengthThe blur filter strength.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ ApplyMatte() [1/2]

virtual Bool Murl::IVideoSurface::ApplyMatte ( const Color matteColor,
Real  matteThreshold = 0 
)
pure virtual

Apply a matte color using a specified alpha threshold value.

The matte color's RGB values are set to all pixels which alpha values are less or equal to the specified alpha threshold value. Applying matte is supported for IEnums::PIXEL_FORMAT_R8_G8_B8_A8, IEnums::PIXEL_FORMAT_L8_A8 and IEnums::PIXEL_FORMAT_R5_G5_B5_A1 only.

Parameters
matteColorThe matte color to apply.
matteThresholdThe alpha threshold in range [0.0 .. 1.0].
Returns
true if successful.

Implemented in Murl::Util::VideoSurface.

◆ ApplyMatte() [2/2]

virtual Bool Murl::IVideoSurface::ApplyMatte ( SInt32  positionX,
SInt32  positionY,
UInt32  pixelSizeX,
UInt32  pixelSizeY,
const Color matteColor,
Real  matteThreshold = 0 
)
pure virtual

Apply a matte color to a rectangular region using a specified alpha threshold value.

The matte color's RGB values are set to all pixels which alpha values are less or equal to the specified alpha threshold value. Applying matte is supported for IEnums::PIXEL_FORMAT_R8_G8_B8_A8, IEnums::PIXEL_FORMAT_L8_A8 and IEnums::PIXEL_FORMAT_R5_G5_B5_A1 only.

Parameters
positionXThe source x-position of the region.
positionYThe source y-position of the region.
pixelSizeXThe number of horizontal pixels of the region.
pixelSizeYThe number of vertical pixels of the region.
matteColorThe matte color to apply.
matteThresholdThe alpha threshold in range [0.0 .. 1.0].
Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ RenderText()

virtual Bool Murl::IVideoSurface::RenderText ( const IFont font,
const String text,
const Color textColor,
const Color backgroundColor,
Bool  clearSurface,
Bool  enableWordWrap,
Real  containerPosX,
Real  containerPosY,
Real  containerSizeX,
Real  containerSizeY,
IEnums::TextAlignmentX  alignX,
IEnums::TextAlignmentY  alignY 
)
pure virtual

Render some text into the surface using a given font.

Parameters
fontThe font used for rendering.
textThe text to render.
textColorThe text color to render.
backgroundColorThe text background color to render.
clearSurfaceIf true, the output surface is cleared before rendering.
enableWordWrapIf true, word wrapping is enabled.
containerPosXThe horizontal text position in the video stream.
containerPosYThe vertical text position in the video stream.
containerSizeXThe horizontal size of the text rectangle, or 0 if the video stream's X size should be used
containerSizeYThe vertical size of the text rectangle, or 0 if the video stream's Y size should be used
alignXThe horizontal text alignment.
alignYThe vertical text alignment.
Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ IsColumnEmpty()

virtual Bool Murl::IVideoSurface::IsColumnEmpty ( UInt32  column,
Real  threshold 
) const
pure virtual

Check if a column is empty using a specified alpha threshold value.

Checking is supported for IEnums::PIXEL_FORMAT_R8_G8_B8_A8 and IEnums::PIXEL_FORMAT_R5_G5_B5_A1 only.

Parameters
columnThe zero-based column.
thresholdThe alpha threshold in range [0.0 .. 1.0].
Returns
true if all alpha values in the column are less or equal to the threshold.

Implemented in Murl::Util::VideoSurface.

◆ IsRowEmpty()

virtual Bool Murl::IVideoSurface::IsRowEmpty ( UInt32  row,
Real  threshold 
) const
pure virtual

Check if a row is empty using a specified alpha threshold value.

Checking is supported for IEnums::PIXEL_FORMAT_R8_G8_B8_A8 and IEnums::PIXEL_FORMAT_R5_G5_B5_A1 only.

Parameters
rowThe zero-based row.
thresholdThe alpha threshold in range [0.0 .. 1.0].
Returns
true if all alpha values in the row are less or equal to the threshold.

Implemented in Murl::Util::VideoSurface.

◆ ClipSizeXRight()

virtual SInt32 Murl::IVideoSurface::ClipSizeXRight ( SInt32  positionX,
SInt32  sizeX 
) const
pure virtual

Clip the width relative to a position and the right border of the surface.

Parameters
positionXThe x-position.
sizeXThe number of horzontal pixels.
Returns
The clipped width.

Implemented in Murl::Util::VideoSurface.

◆ ClipSizeYBottom()

virtual SInt32 Murl::IVideoSurface::ClipSizeYBottom ( SInt32  positionY,
SInt32  sizeY 
) const
pure virtual

Clip the height relative to a position and the bottom border of the surface.

Parameters
positionYThe y-position.
sizeYThe number of vertical pixels.
Returns
The clipped height.

Implemented in Murl::Util::VideoSurface.

◆ Evict()

virtual Bool Murl::IVideoSurface::Evict ( )
pure virtual

Evict restoreable resoures.

Evictable surfaces can free resources e.g. on memory low warnings. These resources can be restored later by calling Restore().

Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.

◆ Restore()

virtual Bool Murl::IVideoSurface::Restore ( )
pure virtual

Restore evictable resoures freed by Evict().

Returns
true if successful.

Implemented in Murl::Util::VideoSurface, and Murl::Util::EvictableVideoSurface.


The documentation for this interface was generated from the following file:
  • murl_i_video_surface.h


Copyright © 2011-2018 Spraylight GmbH.