Feature Files/VR3DTexture.h

//////////
//
//  File:       VR3DTexture.c
//
//  Contains:   Support for adding a QuickTime movie or a picture as a texture on a QD3D object.
//
//  Written by: Tim Monroe
//              Parts modeled on BoxMoov code by Rick Evans and Robert Dierkes.
//
//  Copyright:  © 1996 by Apple Computer, Inc., all rights reserved.
//
//  Change History (most recent first):
//
//     <1>      12/16/96    rtm     first file
//     
//////////
 
#pragma once
 
 
//////////
//
// header files
//     
//////////
 
#ifndef __IMAGECOMPRESSION__
#include <ImageCompression.h>
#endif
 
#ifndef __MOVIES__
#include <Movies.h>
#endif
 
#ifndef __QDOFFSCREEN__
#include <QDOffscreen.h>
#endif
 
#ifndef __QD3D__
#include <QD3D.h>
#endif
 
#ifndef __QD3DGROUP__
#include <QD3DGroup.h>
#endif
 
#ifndef __QD3DSET__
#include <QD3DSet.h>
#endif
 
#ifndef __QD3DSHADER__
#include <QD3DShader.h>
#endif
 
#ifndef __QD3DSTORAGE__
#include <QD3DStorage.h>
#endif
 
#ifndef __QUICKDRAW__
#include <QuickDraw.h>
#endif
 
#ifndef __RESOURCES__
#include <Resources.h>
#endif
 
#ifndef __QTUtilities__
#include "QTUtilities.h"
#endif
 
#ifndef __QTVRUtilities__
#include "QTVRUtilities.h"
#endif
 
#ifndef __FileUtilities__
#include "FileUtilities.h"
#endif
 
#include "VR3DObjects.h"
 
 
//////////
//
// constants
//     
//////////
 
#define kVR_TextureMovieVolAngle    180.0           // volume angle for all texture-mapped movies
 
 
//////////
//
// data structures
//     
//////////
 
typedef struct {
    TQ3StoragePixmap            fStoragePixmap;     // the QD3D pixmap
    GWorldPtr                   fpGWorld;           // the offscreen buffer into which the movie or picture is drawn
    Movie                       fMovie;             // the movie source for animated textures
    MediaHandler                fMediaHandler;      // the sound media handler for animated textures
} Texture, *TexturePtr, **TextureHdl;
 
 
//////////
//
// function prototypes
//     
//////////
 
TextureHdl                      VR3DTexture_New (char *thePathName, Boolean isTextureMovie);
TQ3Status                       VR3DTexture_AddToGroup (TextureHdl theTexture, TQ3GroupObject theGroup);
Boolean                         VR3DTexture_Delete (TextureHdl theTexture);
Boolean                         VR3DTexture_NextFrame (TextureHdl theTexture);