Holy fucking shit I don't want to work on this. Sibly, you son of a ...
This commit is contained in:
+24
-24
@@ -3,28 +3,28 @@
|
||||
#include "gxmovie.h"
|
||||
#include "gxgraphics.h"
|
||||
|
||||
gxMovie::gxMovie( gxGraphics *g,IMultiMediaStream *mm )
|
||||
:gfx(g),mm_stream( mm ),playing(true){
|
||||
gxMovie::gxMovie(gxGraphics *g, IMultiMediaStream *mm)
|
||||
:gfx(g), mm_stream(mm), playing(true) {
|
||||
|
||||
mm_stream->GetMediaStream( MSPID_PrimaryVideo,&vid_stream );
|
||||
vid_stream->QueryInterface( IID_IDirectDrawMediaStream,(void**)&dd_stream );
|
||||
////mm_stream->GetMediaStream( MSPID_PrimaryVideo,&vid_stream );
|
||||
////vid_stream->QueryInterface(IID_IDirectDrawMediaStream, (void**)&dd_stream);
|
||||
|
||||
DDSURFACEDESC desc={sizeof(desc)};
|
||||
dd_stream->GetFormat( &desc,0,0,0 );
|
||||
//DDSURFACEDESC desc = { sizeof(desc) };
|
||||
//dd_stream->GetFormat(&desc, 0, 0, 0);
|
||||
|
||||
canvas=gfx->createCanvas( desc.dwWidth,desc.dwHeight,0 ); //gxCanvas::CANVAS_NONDISPLAY );
|
||||
canvas->getSurface()->QueryInterface( IID_IDirectDrawSurface,(void**)&dd_surf );
|
||||
//canvas = gfx->createCanvas(desc.dwWidth, desc.dwHeight, 0); //gxCanvas::CANVAS_NONDISPLAY );
|
||||
//canvas->getSurface()->QueryInterface(IID_IDirectDrawSurface, (void**)&dd_surf);
|
||||
|
||||
src_rect.left=src_rect.top=0;
|
||||
src_rect.right=desc.dwWidth;src_rect.bottom=desc.dwHeight;
|
||||
//src_rect.left = src_rect.top = 0;
|
||||
//src_rect.right = desc.dwWidth; src_rect.bottom = desc.dwHeight;
|
||||
|
||||
dd_stream->CreateSample( dd_surf,&src_rect,0,&dd_sample );
|
||||
//dd_stream->CreateSample(dd_surf, &src_rect, 0, &dd_sample);
|
||||
|
||||
mm_stream->SetState( STREAMSTATE_RUN );
|
||||
//mm_stream->SetState(STREAMSTATE_RUN);
|
||||
}
|
||||
|
||||
gxMovie::~gxMovie(){
|
||||
mm_stream->SetState( STREAMSTATE_STOP );
|
||||
gxMovie::~gxMovie() {
|
||||
/*mm_stream->SetState(STREAMSTATE_STOP);
|
||||
|
||||
dd_sample->Release();
|
||||
dd_surf->Release();
|
||||
@@ -32,17 +32,17 @@ gxMovie::~gxMovie(){
|
||||
vid_stream->Release();
|
||||
mm_stream->Release();
|
||||
|
||||
gfx->freeCanvas( canvas );
|
||||
gfx->freeCanvas(canvas);*/
|
||||
}
|
||||
|
||||
bool gxMovie::draw( gxCanvas *dest,int x,int y,int w,int h ){
|
||||
if( !playing ) return false;
|
||||
if( !dd_sample->Update( 0,0,0,0 ) ){
|
||||
RECT dest_rect={x,y,x+w,y+h};
|
||||
dest->getSurface()->Blt( &dest_rect,canvas->getSurface(),&src_rect,DDBLT_WAIT,0 );
|
||||
dest->damage( dest_rect );
|
||||
}else{
|
||||
playing=false;
|
||||
}
|
||||
bool gxMovie::draw(gxCanvas *dest, int x, int y, int w, int h) {
|
||||
if (!playing) return false;
|
||||
/*if (!dd_sample->Update(0, 0, 0, 0)) {
|
||||
RECT dest_rect = { x,y,x + w,y + h };
|
||||
dest->getSurface()->Blt(&dest_rect, canvas->getSurface(), &src_rect, DDBLT_WAIT, 0);
|
||||
dest->damage(dest_rect);
|
||||
} else {
|
||||
playing = false;
|
||||
}*/
|
||||
return playing;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user