About
A BaseVideoPost object represents a video post effect in the render settings. Such a video post can be a simple filter or a complete render engine. Custom video posts can be created using the VideoPostData class.
BaseVideoPost objects are an instance of VPbase
.
const Int watermarkID = 1025462;
RenderData*
const renderData = doc->GetActiveRenderData();
while (videoPost != nullptr)
{
if (videoPost->
GetType() == watermarkID)
{
watermark = videoPost;
break;
}
}
if (watermark == nullptr)
{
if (watermark == nullptr)
}
void DelBit(Int32 mask)
Definition: c4d_baselist.h:2256
Definition: c4d_videopost.h:24
static BaseVideoPost * Alloc(Int32 type)
BaseVideoPost * GetNext(void)
Definition: c4d_videopost.h:56
Int32 GetType() const
Definition: c4d_baselist.h:1391
Definition: c4d_basedocument.h:144
void InsertVideoPost(BaseVideoPost *pvp, BaseVideoPost *pred=nullptr)
BaseVideoPost * GetFirstVideoPost()
maxon::Int Int
Definition: ge_sys_math.h:64
#define BIT_VPDISABLED
Videopost is disabled.
Definition: ge_prepass.h:903
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:67
Access
BaseVideoPost elements are stored in an RenderData object:
See also RenderData Manual.
Allocation/Deallocation
BaseVideoPost object are created with the usual tools:
Newly created BaseVideoPost objects can be added to the render settings by adding them to the RenderData object:
RenderData*
const renderData = doc->GetActiveRenderData();
if (renderData == nullptr)
if (colorCorrection == nullptr)
#define VPcolorcorrection
Color correction.
Definition: c4d_videopostdata.h:224
Navigation
BaseVideoPost objects are organized in a list. This list can be navigated with:
RenderData*
const renderData = doc->GetActiveRenderData();
while (videoPost != nullptr)
{
}
String GetName() const
Definition: c4d_baselist.h:2361
#define ApplicationOutput(formatString,...)
Definition: debugdiagnostics.h:210
Properties
The parameters of a video post can be accessed through C4DAtom::GetParameter() and C4DAtom::SetParameter(). The IDs of these parameters are defined in the header file of the specific video post like vpxmbsampler.h
, vppreviewhardware.h
, vpwatermark.h
etc.
Read-Only Properties
Not every video post can be combined with every render engine. It is needed to ask the BaseVideoPost object if it can be used with the given render engine.
RenderData*
const renderData = doc->GetActiveRenderData();
if (watermark == nullptr)
{
}
else
{
}
Definition: c4d_basecontainer.h:47
Int32 GetInt32(Int32 id, Int32 preset=0) const
Definition: c4d_basecontainer.h:303
const BaseContainer & GetDataInstanceRef() const
Definition: c4d_baselist.h:2342
Bool RenderEngineCheck(Int32 id)
static void Free(BaseVideoPost *&bl)
@ RDATA_RENDERENGINE
Definition: drendersettings.h:39
maxon::Int32 Int32
Definition: ge_sys_math.h:60
Stereo
A video post could also handle stereoscopic related functionality. By default the only existing video post that does handle stereoscopic images is the stereo video post (ID 450000225
). To check if a plugin video post handles stereo images check the flag PLUGINFLAG_VIDEOPOST_STEREO_RENDERING. The source and target bitmap data is stored as a BaseBitmap (see BaseBitmap Manual).
if (stereoVP == nullptr)
Bool ShowBitmap(const Filename &fn)
Definition: ge_autoptr.h:37
void SetInt32(Int32 id, Int32 l)
Definition: c4d_basecontainer.h:505
@ RDATA_STEREO_MODE_ANAGLYPH
Definition: drendersettings.h:432
@ RDATA_STEREO_MODE
Definition: drendersettings.h:431
const T & src
Definition: apibase.h:2613
See also CameraObject Manual.
Bits
If a videopost is enabed or not is controlled with a bit:
RenderData*
const rd = doc->GetActiveRenderData();
if (rd == nullptr)
if (vp != nullptr)
void SetBit(Int32 mask)
Definition: c4d_baselist.h:2243
Further Reading