mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-10 18:59:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
/*
|
||||
File: CGDataProvider.h
|
||||
|
||||
Contains: CoreGraphics data provider
|
||||
|
||||
Version: QuickTime 7.3
|
||||
|
||||
Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved.
|
||||
|
||||
Bugs?: For bug reports, consult the following page on
|
||||
the World Wide Web:
|
||||
|
||||
http://developer.apple.com/bugreporter/
|
||||
|
||||
*/
|
||||
#ifndef CGDATAPROVIDER_H_
|
||||
#define CGDATAPROVIDER_H_
|
||||
|
||||
#ifndef __CGBASE__
|
||||
#include <CGBase.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CFURL__
|
||||
#include <CFURL.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#if PRAGMA_ONCE
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if PRAGMA_IMPORT
|
||||
#pragma import on
|
||||
#endif
|
||||
|
||||
#if PRAGMA_STRUCT_ALIGN
|
||||
#pragma options align=mac68k
|
||||
#elif PRAGMA_STRUCT_PACKPUSH
|
||||
#pragma pack(push, 2)
|
||||
#elif PRAGMA_STRUCT_PACK
|
||||
#pragma pack(2)
|
||||
#endif
|
||||
|
||||
typedef struct CGDataProvider* CGDataProviderRef;
|
||||
typedef CALLBACK_API_C( size_t , CGGetBytesProcPtr )(void *info, void *buffer, size_t count);
|
||||
typedef CALLBACK_API_C( void , CGSkipBytesProcPtr )(void *info, size_t count);
|
||||
typedef CALLBACK_API_C( void , CGRewindProcPtr )(void * info);
|
||||
typedef CALLBACK_API_C( void , CGReleaseProviderProcPtr )(void * info);
|
||||
/* Callbacks for sequentially accessing data.
|
||||
* `getBytes' is called to copy `count' bytes from the provider's data to
|
||||
* `buffer'. It should return the number of bytes copied, or 0 if there's
|
||||
* no more data.
|
||||
* `skipBytes' is called to skip ahead in the provider's data by `count' bytes.
|
||||
* `rewind' is called to rewind the provider to the beginning of the data.
|
||||
* `releaseProvider', if non-NULL, is called when the provider is freed. */
|
||||
struct CGDataProviderCallbacks {
|
||||
CGGetBytesProcPtr getBytes;
|
||||
CGSkipBytesProcPtr skipBytes;
|
||||
CGRewindProcPtr rewind;
|
||||
CGReleaseProviderProcPtr releaseProvider;
|
||||
};
|
||||
typedef struct CGDataProviderCallbacks CGDataProviderCallbacks;
|
||||
typedef CALLBACK_API_C( void *, CGGetBytePointerProcPtr )(void * info);
|
||||
typedef CALLBACK_API_C( void , CGReleaseByteProcPtr )(void *info, const void *pointer);
|
||||
typedef CALLBACK_API_C( size_t , CGGetBytesDirectProcPtr )(void *info, void *buffer, size_t offset, size_t count);
|
||||
/* Callbacks for directly accessing data.
|
||||
* `getBytePointer', if non-NULL, is called to return a pointer to the
|
||||
* provider's entire block of data.
|
||||
* `releaseBytePointer', if non-NULL, is called to release a pointer to
|
||||
* the provider's entire block of data.
|
||||
* `getBytes', if non-NULL, is called to copy `count' bytes at offset
|
||||
* `offset' from the provider's data to `buffer'. It should return the
|
||||
* number of bytes copied, or 0 if there's no more data.
|
||||
* `releaseProvider', if non-NULL, is called when the provider is freed.
|
||||
* At least one of `getBytePointer' or `getBytes' must be non-NULL. */
|
||||
struct CGDataProviderDirectAccessCallbacks {
|
||||
CGGetBytePointerProcPtr getBytePointer;
|
||||
CGReleaseByteProcPtr releaseBytePointer;
|
||||
CGGetBytesDirectProcPtr getBytes;
|
||||
CGReleaseProviderProcPtr releaseProvider;
|
||||
};
|
||||
typedef struct CGDataProviderDirectAccessCallbacks CGDataProviderDirectAccessCallbacks;
|
||||
typedef CALLBACK_API_C( void , CGReleaseDataProcPtr )(void *info, const void *data, size_t size);
|
||||
/* Create a sequential-access data provider using `callbacks' to provide
|
||||
* the data. `info' is passed to each of the callback functions. */
|
||||
/*
|
||||
* CGDataProviderCreate()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( CGDataProviderRef )
|
||||
CGDataProviderCreate(
|
||||
void * info,
|
||||
const CGDataProviderCallbacks * callbacks);
|
||||
|
||||
|
||||
/* Create a direct-access data provider using `callbacks' to supply `size'
|
||||
* bytes of data. `info' is passed to each of the callback functions. */
|
||||
/*
|
||||
* CGDataProviderCreateDirectAccess()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( CGDataProviderRef )
|
||||
CGDataProviderCreateDirectAccess(
|
||||
void * info,
|
||||
size_t size,
|
||||
const CGDataProviderDirectAccessCallbacks * callbacks);
|
||||
|
||||
|
||||
/* Create a direct-access data provider using `data', an array of `size'
|
||||
* bytes. `releaseData' is called when the data provider is freed, and is
|
||||
* passed `info' as its first argument. */
|
||||
/*
|
||||
* CGDataProviderCreateWithData()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( CGDataProviderRef )
|
||||
CGDataProviderCreateWithData(
|
||||
void * info,
|
||||
const void * data,
|
||||
size_t size,
|
||||
CGReleaseDataProcPtr releaseData);
|
||||
|
||||
|
||||
/* Create a data provider using `url'. */
|
||||
/*
|
||||
* CGDataProviderCreateWithURL()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( CGDataProviderRef )
|
||||
CGDataProviderCreateWithURL(CFURLRef url);
|
||||
|
||||
|
||||
/* Increment the retain count of `provider' and return it. All data
|
||||
* providers are created with an initial retain count of 1. */
|
||||
/*
|
||||
* CGDataProviderRetain()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( CGDataProviderRef )
|
||||
CGDataProviderRetain(CGDataProviderRef provider);
|
||||
|
||||
|
||||
/* Decrement the retain count of `provider'. If the retain count reaches
|
||||
* 0, then free `provider' and any associated resources. */
|
||||
/*
|
||||
* CGDataProviderRelease()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( void )
|
||||
CGDataProviderRelease(CGDataProviderRef provider);
|
||||
|
||||
|
||||
|
||||
#if PRAGMA_STRUCT_ALIGN
|
||||
#pragma options align=reset
|
||||
#elif PRAGMA_STRUCT_PACKPUSH
|
||||
#pragma pack(pop)
|
||||
#elif PRAGMA_STRUCT_PACK
|
||||
#pragma pack()
|
||||
#endif
|
||||
|
||||
#ifdef PRAGMA_IMPORT_OFF
|
||||
#pragma import off
|
||||
#elif PRAGMA_IMPORT
|
||||
#pragma import reset
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CGDATAPROVIDER_H_ */
|
||||
|
||||
Reference in New Issue
Block a user