imblur.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *<
00003     FILE: imblur.h
00004 
00005     DESCRIPTION:  Defines Interface for Image Motion Blur.  This interface is
00006         implemented in the Effect plugin MotionBlur.dlv, which must be present to use it.
00007         This interface is does NOT support scripting, only direct calling.
00008 
00009     CREATED BY: Dan Silva
00010 
00011     HISTORY: created 7 March 2000
00012 
00013  *> Copyright (c) 2000, All Rights Reserved.
00014  **********************************************************************/
00015 #pragma once
00016 
00017 #include "iFnPub.h"
00018 #include "iparamb2.h"
00019 
00020 // forward declarations
00021 class Bitmap;
00022 class CheckAbortCallback;
00023 
00024 // Class ID for the motion blur Effect
00025 #define MBLUR_CLASS_ID Class_ID(0x86c92d3, 0x601af384) 
00026 
00027 // Interface ID for the motion blur function interface ( IMBOps) 
00028 #define IMB_INTERFACE Interface_ID(0x2A3764C1,0x9C96F51)
00029 
00030 // Use this to get ClassDesc2 that implements interface.
00031 #define GET_MBLUR_CD (ClassDesc2*)GetCOREInterface()->GetDllDir().ClassDir().FindClass(RENDER_EFFECT_CLASS_ID, MBLUR_CLASS_ID)
00032 
00033 // Use this to get IMBOps interface from the ClassDesc2.
00034 #define GetIMBInterface(cd) (IMBOps *)(cd)->GetInterface(IMB_INTERFACE)
00035 
00036 // Flags values
00037 #define IMB_TRANSP  1  // controls whether motion blur works through transparency.  Setting it to 0 saves memory, runs faster.
00038  
00040 
00051 class IMBOps: public FPStaticInterface {
00052     public: 
00060     virtual ULONG ChannelsRequired(ULONG flags=0)=0;
00079     virtual int ApplyMotionBlur(Bitmap *bm, CheckAbortCallback *progCallback=NULL,  
00080         float duration=1.0f,  ULONG flags=IMB_TRANSP, Bitmap *extraBM=NULL)=0;
00081     };
00082 
00083 
00084