am 6b801349: Merge "Remove out-dated android-20 and android-21 now called android-L" into lmp-dev
* commit '6b80134995e3a477b5069bfe21d35870fb8fe17d': Remove out-dated android-20 and android-21 now called android-L
This commit is contained in:
@@ -1,91 +0,0 @@
|
||||
AMediaCodecCryptoInfo_delete
|
||||
AMediaCodecCryptoInfo_getClearBytes
|
||||
AMediaCodecCryptoInfo_getEncryptedBytes
|
||||
AMediaCodecCryptoInfo_getIV
|
||||
AMediaCodecCryptoInfo_getKey
|
||||
AMediaCodecCryptoInfo_getMode
|
||||
AMediaCodecCryptoInfo_getNumSubSamples
|
||||
AMediaCodecCryptoInfo_new
|
||||
AMediaCodec_configure
|
||||
AMediaCodec_createCodecByName
|
||||
AMediaCodec_createDecoderByType
|
||||
AMediaCodec_createEncoderByType
|
||||
AMediaCodec_delete
|
||||
AMediaCodec_dequeueInputBuffer
|
||||
AMediaCodec_dequeueOutputBuffer
|
||||
AMediaCodec_flush
|
||||
AMediaCodec_getInputBuffer
|
||||
AMediaCodec_getOutputBuffer
|
||||
AMediaCodec_getOutputFormat
|
||||
AMediaCodec_queueInputBuffer
|
||||
AMediaCodec_queueSecureInputBuffer
|
||||
AMediaCodec_releaseOutputBuffer
|
||||
AMediaCodec_releaseOutputBufferAtTime
|
||||
AMediaCodec_start
|
||||
AMediaCodec_stop
|
||||
AMediaCrypto_delete
|
||||
AMediaCrypto_isCryptoSchemeSupported
|
||||
AMediaCrypto_new
|
||||
AMediaCrypto_requiresSecureDecoderComponent
|
||||
AMediaDrm_closeSession
|
||||
AMediaDrm_createByUUID
|
||||
AMediaDrm_decrypt
|
||||
AMediaDrm_encrypt
|
||||
AMediaDrm_getKeyRequest
|
||||
AMediaDrm_getPropertyByteArray
|
||||
AMediaDrm_getPropertyString
|
||||
AMediaDrm_getProvisionRequest
|
||||
AMediaDrm_getSecureStops
|
||||
AMediaDrm_isCryptoSchemeSupported
|
||||
AMediaDrm_openSession
|
||||
AMediaDrm_provideKeyResponse
|
||||
AMediaDrm_provideProvisionResponse
|
||||
AMediaDrm_queryKeyStatus
|
||||
AMediaDrm_release
|
||||
AMediaDrm_releaseSecureStops
|
||||
AMediaDrm_removeKeys
|
||||
AMediaDrm_restoreKeys
|
||||
AMediaDrm_setOnEventListener
|
||||
AMediaDrm_setPropertyByteArray
|
||||
AMediaDrm_setPropertyString
|
||||
AMediaDrm_sign
|
||||
AMediaDrm_verify
|
||||
AMediaExtractor_advance
|
||||
AMediaExtractor_delete
|
||||
AMediaExtractor_getPsshInfo
|
||||
AMediaExtractor_getSampleCryptoInfo
|
||||
AMediaExtractor_getSampleFlags
|
||||
AMediaExtractor_getSampleTime
|
||||
AMediaExtractor_getSampleTrackIndex
|
||||
AMediaExtractor_getTrackCount
|
||||
AMediaExtractor_getTrackFormat
|
||||
AMediaExtractor_new
|
||||
AMediaExtractor_readSampleData
|
||||
AMediaExtractor_seekTo
|
||||
AMediaExtractor_selectTrack
|
||||
AMediaExtractor_setDataSource
|
||||
AMediaExtractor_setDataSourceFd
|
||||
AMediaExtractor_unselectTrack
|
||||
AMediaFormat_delete
|
||||
AMediaFormat_getBuffer
|
||||
AMediaFormat_getFloat
|
||||
AMediaFormat_getInt32
|
||||
AMediaFormat_getInt64
|
||||
AMediaFormat_getSize
|
||||
AMediaFormat_getString
|
||||
AMediaFormat_new
|
||||
AMediaFormat_setBuffer
|
||||
AMediaFormat_setFloat
|
||||
AMediaFormat_setInt32
|
||||
AMediaFormat_setInt64
|
||||
AMediaFormat_setString
|
||||
AMediaFormat_toString
|
||||
AMediaMuxer_addTrack
|
||||
AMediaMuxer_delete
|
||||
AMediaMuxer_new
|
||||
AMediaMuxer_setLocation
|
||||
AMediaMuxer_setOrientationHint
|
||||
AMediaMuxer_start
|
||||
AMediaMuxer_stop
|
||||
AMediaMuxer_writeSampleData
|
||||
__popcountdi2
|
||||
@@ -1,24 +0,0 @@
|
||||
AMEDIAFORMAT_KEY_AAC_PROFILE
|
||||
AMEDIAFORMAT_KEY_BIT_RATE
|
||||
AMEDIAFORMAT_KEY_CHANNEL_COUNT
|
||||
AMEDIAFORMAT_KEY_CHANNEL_MASK
|
||||
AMEDIAFORMAT_KEY_COLOR_FORMAT
|
||||
AMEDIAFORMAT_KEY_DURATION
|
||||
AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL
|
||||
AMEDIAFORMAT_KEY_FRAME_RATE
|
||||
AMEDIAFORMAT_KEY_HEIGHT
|
||||
AMEDIAFORMAT_KEY_IS_ADTS
|
||||
AMEDIAFORMAT_KEY_IS_AUTOSELECT
|
||||
AMEDIAFORMAT_KEY_IS_DEFAULT
|
||||
AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE
|
||||
AMEDIAFORMAT_KEY_I_FRAME_INTERVAL
|
||||
AMEDIAFORMAT_KEY_LANGUAGE
|
||||
AMEDIAFORMAT_KEY_MAX_HEIGHT
|
||||
AMEDIAFORMAT_KEY_MAX_INPUT_SIZE
|
||||
AMEDIAFORMAT_KEY_MAX_WIDTH
|
||||
AMEDIAFORMAT_KEY_MIME
|
||||
AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP
|
||||
AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER
|
||||
AMEDIAFORMAT_KEY_SAMPLE_RATE
|
||||
AMEDIAFORMAT_KEY_STRIDE
|
||||
AMEDIAFORMAT_KEY_WIDTH
|
||||
@@ -1,91 +0,0 @@
|
||||
AMediaCodecCryptoInfo_delete
|
||||
AMediaCodecCryptoInfo_getClearBytes
|
||||
AMediaCodecCryptoInfo_getEncryptedBytes
|
||||
AMediaCodecCryptoInfo_getIV
|
||||
AMediaCodecCryptoInfo_getKey
|
||||
AMediaCodecCryptoInfo_getMode
|
||||
AMediaCodecCryptoInfo_getNumSubSamples
|
||||
AMediaCodecCryptoInfo_new
|
||||
AMediaCodec_configure
|
||||
AMediaCodec_createCodecByName
|
||||
AMediaCodec_createDecoderByType
|
||||
AMediaCodec_createEncoderByType
|
||||
AMediaCodec_delete
|
||||
AMediaCodec_dequeueInputBuffer
|
||||
AMediaCodec_dequeueOutputBuffer
|
||||
AMediaCodec_flush
|
||||
AMediaCodec_getInputBuffer
|
||||
AMediaCodec_getOutputBuffer
|
||||
AMediaCodec_getOutputFormat
|
||||
AMediaCodec_queueInputBuffer
|
||||
AMediaCodec_queueSecureInputBuffer
|
||||
AMediaCodec_releaseOutputBuffer
|
||||
AMediaCodec_releaseOutputBufferAtTime
|
||||
AMediaCodec_start
|
||||
AMediaCodec_stop
|
||||
AMediaCrypto_delete
|
||||
AMediaCrypto_isCryptoSchemeSupported
|
||||
AMediaCrypto_new
|
||||
AMediaCrypto_requiresSecureDecoderComponent
|
||||
AMediaDrm_closeSession
|
||||
AMediaDrm_createByUUID
|
||||
AMediaDrm_decrypt
|
||||
AMediaDrm_encrypt
|
||||
AMediaDrm_getKeyRequest
|
||||
AMediaDrm_getPropertyByteArray
|
||||
AMediaDrm_getPropertyString
|
||||
AMediaDrm_getProvisionRequest
|
||||
AMediaDrm_getSecureStops
|
||||
AMediaDrm_isCryptoSchemeSupported
|
||||
AMediaDrm_openSession
|
||||
AMediaDrm_provideKeyResponse
|
||||
AMediaDrm_provideProvisionResponse
|
||||
AMediaDrm_queryKeyStatus
|
||||
AMediaDrm_release
|
||||
AMediaDrm_releaseSecureStops
|
||||
AMediaDrm_removeKeys
|
||||
AMediaDrm_restoreKeys
|
||||
AMediaDrm_setOnEventListener
|
||||
AMediaDrm_setPropertyByteArray
|
||||
AMediaDrm_setPropertyString
|
||||
AMediaDrm_sign
|
||||
AMediaDrm_verify
|
||||
AMediaExtractor_advance
|
||||
AMediaExtractor_delete
|
||||
AMediaExtractor_getPsshInfo
|
||||
AMediaExtractor_getSampleCryptoInfo
|
||||
AMediaExtractor_getSampleFlags
|
||||
AMediaExtractor_getSampleTime
|
||||
AMediaExtractor_getSampleTrackIndex
|
||||
AMediaExtractor_getTrackCount
|
||||
AMediaExtractor_getTrackFormat
|
||||
AMediaExtractor_new
|
||||
AMediaExtractor_readSampleData
|
||||
AMediaExtractor_seekTo
|
||||
AMediaExtractor_selectTrack
|
||||
AMediaExtractor_setDataSource
|
||||
AMediaExtractor_setDataSourceFd
|
||||
AMediaExtractor_unselectTrack
|
||||
AMediaFormat_delete
|
||||
AMediaFormat_getBuffer
|
||||
AMediaFormat_getFloat
|
||||
AMediaFormat_getInt32
|
||||
AMediaFormat_getInt64
|
||||
AMediaFormat_getSize
|
||||
AMediaFormat_getString
|
||||
AMediaFormat_new
|
||||
AMediaFormat_setBuffer
|
||||
AMediaFormat_setFloat
|
||||
AMediaFormat_setInt32
|
||||
AMediaFormat_setInt64
|
||||
AMediaFormat_setString
|
||||
AMediaFormat_toString
|
||||
AMediaMuxer_addTrack
|
||||
AMediaMuxer_delete
|
||||
AMediaMuxer_new
|
||||
AMediaMuxer_setLocation
|
||||
AMediaMuxer_setOrientationHint
|
||||
AMediaMuxer_start
|
||||
AMediaMuxer_stop
|
||||
AMediaMuxer_writeSampleData
|
||||
__popcountdi2
|
||||
@@ -1,24 +0,0 @@
|
||||
AMEDIAFORMAT_KEY_AAC_PROFILE
|
||||
AMEDIAFORMAT_KEY_BIT_RATE
|
||||
AMEDIAFORMAT_KEY_CHANNEL_COUNT
|
||||
AMEDIAFORMAT_KEY_CHANNEL_MASK
|
||||
AMEDIAFORMAT_KEY_COLOR_FORMAT
|
||||
AMEDIAFORMAT_KEY_DURATION
|
||||
AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL
|
||||
AMEDIAFORMAT_KEY_FRAME_RATE
|
||||
AMEDIAFORMAT_KEY_HEIGHT
|
||||
AMEDIAFORMAT_KEY_IS_ADTS
|
||||
AMEDIAFORMAT_KEY_IS_AUTOSELECT
|
||||
AMEDIAFORMAT_KEY_IS_DEFAULT
|
||||
AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE
|
||||
AMEDIAFORMAT_KEY_I_FRAME_INTERVAL
|
||||
AMEDIAFORMAT_KEY_LANGUAGE
|
||||
AMEDIAFORMAT_KEY_MAX_HEIGHT
|
||||
AMEDIAFORMAT_KEY_MAX_INPUT_SIZE
|
||||
AMEDIAFORMAT_KEY_MAX_WIDTH
|
||||
AMEDIAFORMAT_KEY_MIME
|
||||
AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP
|
||||
AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER
|
||||
AMEDIAFORMAT_KEY_SAMPLE_RATE
|
||||
AMEDIAFORMAT_KEY_STRIDE
|
||||
AMEDIAFORMAT_KEY_WIDTH
|
||||
@@ -1,91 +0,0 @@
|
||||
AMediaCodecCryptoInfo_delete
|
||||
AMediaCodecCryptoInfo_getClearBytes
|
||||
AMediaCodecCryptoInfo_getEncryptedBytes
|
||||
AMediaCodecCryptoInfo_getIV
|
||||
AMediaCodecCryptoInfo_getKey
|
||||
AMediaCodecCryptoInfo_getMode
|
||||
AMediaCodecCryptoInfo_getNumSubSamples
|
||||
AMediaCodecCryptoInfo_new
|
||||
AMediaCodec_configure
|
||||
AMediaCodec_createCodecByName
|
||||
AMediaCodec_createDecoderByType
|
||||
AMediaCodec_createEncoderByType
|
||||
AMediaCodec_delete
|
||||
AMediaCodec_dequeueInputBuffer
|
||||
AMediaCodec_dequeueOutputBuffer
|
||||
AMediaCodec_flush
|
||||
AMediaCodec_getInputBuffer
|
||||
AMediaCodec_getOutputBuffer
|
||||
AMediaCodec_getOutputFormat
|
||||
AMediaCodec_queueInputBuffer
|
||||
AMediaCodec_queueSecureInputBuffer
|
||||
AMediaCodec_releaseOutputBuffer
|
||||
AMediaCodec_releaseOutputBufferAtTime
|
||||
AMediaCodec_start
|
||||
AMediaCodec_stop
|
||||
AMediaCrypto_delete
|
||||
AMediaCrypto_isCryptoSchemeSupported
|
||||
AMediaCrypto_new
|
||||
AMediaCrypto_requiresSecureDecoderComponent
|
||||
AMediaDrm_closeSession
|
||||
AMediaDrm_createByUUID
|
||||
AMediaDrm_decrypt
|
||||
AMediaDrm_encrypt
|
||||
AMediaDrm_getKeyRequest
|
||||
AMediaDrm_getPropertyByteArray
|
||||
AMediaDrm_getPropertyString
|
||||
AMediaDrm_getProvisionRequest
|
||||
AMediaDrm_getSecureStops
|
||||
AMediaDrm_isCryptoSchemeSupported
|
||||
AMediaDrm_openSession
|
||||
AMediaDrm_provideKeyResponse
|
||||
AMediaDrm_provideProvisionResponse
|
||||
AMediaDrm_queryKeyStatus
|
||||
AMediaDrm_release
|
||||
AMediaDrm_releaseSecureStops
|
||||
AMediaDrm_removeKeys
|
||||
AMediaDrm_restoreKeys
|
||||
AMediaDrm_setOnEventListener
|
||||
AMediaDrm_setPropertyByteArray
|
||||
AMediaDrm_setPropertyString
|
||||
AMediaDrm_sign
|
||||
AMediaDrm_verify
|
||||
AMediaExtractor_advance
|
||||
AMediaExtractor_delete
|
||||
AMediaExtractor_getPsshInfo
|
||||
AMediaExtractor_getSampleCryptoInfo
|
||||
AMediaExtractor_getSampleFlags
|
||||
AMediaExtractor_getSampleTime
|
||||
AMediaExtractor_getSampleTrackIndex
|
||||
AMediaExtractor_getTrackCount
|
||||
AMediaExtractor_getTrackFormat
|
||||
AMediaExtractor_new
|
||||
AMediaExtractor_readSampleData
|
||||
AMediaExtractor_seekTo
|
||||
AMediaExtractor_selectTrack
|
||||
AMediaExtractor_setDataSource
|
||||
AMediaExtractor_setDataSourceFd
|
||||
AMediaExtractor_unselectTrack
|
||||
AMediaFormat_delete
|
||||
AMediaFormat_getBuffer
|
||||
AMediaFormat_getFloat
|
||||
AMediaFormat_getInt32
|
||||
AMediaFormat_getInt64
|
||||
AMediaFormat_getSize
|
||||
AMediaFormat_getString
|
||||
AMediaFormat_new
|
||||
AMediaFormat_setBuffer
|
||||
AMediaFormat_setFloat
|
||||
AMediaFormat_setInt32
|
||||
AMediaFormat_setInt64
|
||||
AMediaFormat_setString
|
||||
AMediaFormat_toString
|
||||
AMediaMuxer_addTrack
|
||||
AMediaMuxer_delete
|
||||
AMediaMuxer_new
|
||||
AMediaMuxer_setLocation
|
||||
AMediaMuxer_setOrientationHint
|
||||
AMediaMuxer_start
|
||||
AMediaMuxer_stop
|
||||
AMediaMuxer_writeSampleData
|
||||
__popcountdi2
|
||||
@@ -1,24 +0,0 @@
|
||||
AMEDIAFORMAT_KEY_AAC_PROFILE
|
||||
AMEDIAFORMAT_KEY_BIT_RATE
|
||||
AMEDIAFORMAT_KEY_CHANNEL_COUNT
|
||||
AMEDIAFORMAT_KEY_CHANNEL_MASK
|
||||
AMEDIAFORMAT_KEY_COLOR_FORMAT
|
||||
AMEDIAFORMAT_KEY_DURATION
|
||||
AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL
|
||||
AMEDIAFORMAT_KEY_FRAME_RATE
|
||||
AMEDIAFORMAT_KEY_HEIGHT
|
||||
AMEDIAFORMAT_KEY_IS_ADTS
|
||||
AMEDIAFORMAT_KEY_IS_AUTOSELECT
|
||||
AMEDIAFORMAT_KEY_IS_DEFAULT
|
||||
AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE
|
||||
AMEDIAFORMAT_KEY_I_FRAME_INTERVAL
|
||||
AMEDIAFORMAT_KEY_LANGUAGE
|
||||
AMEDIAFORMAT_KEY_MAX_HEIGHT
|
||||
AMEDIAFORMAT_KEY_MAX_INPUT_SIZE
|
||||
AMEDIAFORMAT_KEY_MAX_WIDTH
|
||||
AMEDIAFORMAT_KEY_MIME
|
||||
AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP
|
||||
AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER
|
||||
AMEDIAFORMAT_KEY_SAMPLE_RATE
|
||||
AMEDIAFORMAT_KEY_STRIDE
|
||||
AMEDIAFORMAT_KEY_WIDTH
|
||||
@@ -1,91 +0,0 @@
|
||||
AMediaCodecCryptoInfo_delete
|
||||
AMediaCodecCryptoInfo_getClearBytes
|
||||
AMediaCodecCryptoInfo_getEncryptedBytes
|
||||
AMediaCodecCryptoInfo_getIV
|
||||
AMediaCodecCryptoInfo_getKey
|
||||
AMediaCodecCryptoInfo_getMode
|
||||
AMediaCodecCryptoInfo_getNumSubSamples
|
||||
AMediaCodecCryptoInfo_new
|
||||
AMediaCodec_configure
|
||||
AMediaCodec_createCodecByName
|
||||
AMediaCodec_createDecoderByType
|
||||
AMediaCodec_createEncoderByType
|
||||
AMediaCodec_delete
|
||||
AMediaCodec_dequeueInputBuffer
|
||||
AMediaCodec_dequeueOutputBuffer
|
||||
AMediaCodec_flush
|
||||
AMediaCodec_getInputBuffer
|
||||
AMediaCodec_getOutputBuffer
|
||||
AMediaCodec_getOutputFormat
|
||||
AMediaCodec_queueInputBuffer
|
||||
AMediaCodec_queueSecureInputBuffer
|
||||
AMediaCodec_releaseOutputBuffer
|
||||
AMediaCodec_releaseOutputBufferAtTime
|
||||
AMediaCodec_start
|
||||
AMediaCodec_stop
|
||||
AMediaCrypto_delete
|
||||
AMediaCrypto_isCryptoSchemeSupported
|
||||
AMediaCrypto_new
|
||||
AMediaCrypto_requiresSecureDecoderComponent
|
||||
AMediaDrm_closeSession
|
||||
AMediaDrm_createByUUID
|
||||
AMediaDrm_decrypt
|
||||
AMediaDrm_encrypt
|
||||
AMediaDrm_getKeyRequest
|
||||
AMediaDrm_getPropertyByteArray
|
||||
AMediaDrm_getPropertyString
|
||||
AMediaDrm_getProvisionRequest
|
||||
AMediaDrm_getSecureStops
|
||||
AMediaDrm_isCryptoSchemeSupported
|
||||
AMediaDrm_openSession
|
||||
AMediaDrm_provideKeyResponse
|
||||
AMediaDrm_provideProvisionResponse
|
||||
AMediaDrm_queryKeyStatus
|
||||
AMediaDrm_release
|
||||
AMediaDrm_releaseSecureStops
|
||||
AMediaDrm_removeKeys
|
||||
AMediaDrm_restoreKeys
|
||||
AMediaDrm_setOnEventListener
|
||||
AMediaDrm_setPropertyByteArray
|
||||
AMediaDrm_setPropertyString
|
||||
AMediaDrm_sign
|
||||
AMediaDrm_verify
|
||||
AMediaExtractor_advance
|
||||
AMediaExtractor_delete
|
||||
AMediaExtractor_getPsshInfo
|
||||
AMediaExtractor_getSampleCryptoInfo
|
||||
AMediaExtractor_getSampleFlags
|
||||
AMediaExtractor_getSampleTime
|
||||
AMediaExtractor_getSampleTrackIndex
|
||||
AMediaExtractor_getTrackCount
|
||||
AMediaExtractor_getTrackFormat
|
||||
AMediaExtractor_new
|
||||
AMediaExtractor_readSampleData
|
||||
AMediaExtractor_seekTo
|
||||
AMediaExtractor_selectTrack
|
||||
AMediaExtractor_setDataSource
|
||||
AMediaExtractor_setDataSourceFd
|
||||
AMediaExtractor_unselectTrack
|
||||
AMediaFormat_delete
|
||||
AMediaFormat_getBuffer
|
||||
AMediaFormat_getFloat
|
||||
AMediaFormat_getInt32
|
||||
AMediaFormat_getInt64
|
||||
AMediaFormat_getSize
|
||||
AMediaFormat_getString
|
||||
AMediaFormat_new
|
||||
AMediaFormat_setBuffer
|
||||
AMediaFormat_setFloat
|
||||
AMediaFormat_setInt32
|
||||
AMediaFormat_setInt64
|
||||
AMediaFormat_setString
|
||||
AMediaFormat_toString
|
||||
AMediaMuxer_addTrack
|
||||
AMediaMuxer_delete
|
||||
AMediaMuxer_new
|
||||
AMediaMuxer_setLocation
|
||||
AMediaMuxer_setOrientationHint
|
||||
AMediaMuxer_start
|
||||
AMediaMuxer_stop
|
||||
AMediaMuxer_writeSampleData
|
||||
__popcountdi2
|
||||
@@ -1,24 +0,0 @@
|
||||
AMEDIAFORMAT_KEY_AAC_PROFILE
|
||||
AMEDIAFORMAT_KEY_BIT_RATE
|
||||
AMEDIAFORMAT_KEY_CHANNEL_COUNT
|
||||
AMEDIAFORMAT_KEY_CHANNEL_MASK
|
||||
AMEDIAFORMAT_KEY_COLOR_FORMAT
|
||||
AMEDIAFORMAT_KEY_DURATION
|
||||
AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL
|
||||
AMEDIAFORMAT_KEY_FRAME_RATE
|
||||
AMEDIAFORMAT_KEY_HEIGHT
|
||||
AMEDIAFORMAT_KEY_IS_ADTS
|
||||
AMEDIAFORMAT_KEY_IS_AUTOSELECT
|
||||
AMEDIAFORMAT_KEY_IS_DEFAULT
|
||||
AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE
|
||||
AMEDIAFORMAT_KEY_I_FRAME_INTERVAL
|
||||
AMEDIAFORMAT_KEY_LANGUAGE
|
||||
AMEDIAFORMAT_KEY_MAX_HEIGHT
|
||||
AMEDIAFORMAT_KEY_MAX_INPUT_SIZE
|
||||
AMEDIAFORMAT_KEY_MAX_WIDTH
|
||||
AMEDIAFORMAT_KEY_MIME
|
||||
AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP
|
||||
AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER
|
||||
AMEDIAFORMAT_KEY_SAMPLE_RATE
|
||||
AMEDIAFORMAT_KEY_STRIDE
|
||||
AMEDIAFORMAT_KEY_WIDTH
|
||||
@@ -1,91 +0,0 @@
|
||||
AMediaCodecCryptoInfo_delete
|
||||
AMediaCodecCryptoInfo_getClearBytes
|
||||
AMediaCodecCryptoInfo_getEncryptedBytes
|
||||
AMediaCodecCryptoInfo_getIV
|
||||
AMediaCodecCryptoInfo_getKey
|
||||
AMediaCodecCryptoInfo_getMode
|
||||
AMediaCodecCryptoInfo_getNumSubSamples
|
||||
AMediaCodecCryptoInfo_new
|
||||
AMediaCodec_configure
|
||||
AMediaCodec_createCodecByName
|
||||
AMediaCodec_createDecoderByType
|
||||
AMediaCodec_createEncoderByType
|
||||
AMediaCodec_delete
|
||||
AMediaCodec_dequeueInputBuffer
|
||||
AMediaCodec_dequeueOutputBuffer
|
||||
AMediaCodec_flush
|
||||
AMediaCodec_getInputBuffer
|
||||
AMediaCodec_getOutputBuffer
|
||||
AMediaCodec_getOutputFormat
|
||||
AMediaCodec_queueInputBuffer
|
||||
AMediaCodec_queueSecureInputBuffer
|
||||
AMediaCodec_releaseOutputBuffer
|
||||
AMediaCodec_releaseOutputBufferAtTime
|
||||
AMediaCodec_start
|
||||
AMediaCodec_stop
|
||||
AMediaCrypto_delete
|
||||
AMediaCrypto_isCryptoSchemeSupported
|
||||
AMediaCrypto_new
|
||||
AMediaCrypto_requiresSecureDecoderComponent
|
||||
AMediaDrm_closeSession
|
||||
AMediaDrm_createByUUID
|
||||
AMediaDrm_decrypt
|
||||
AMediaDrm_encrypt
|
||||
AMediaDrm_getKeyRequest
|
||||
AMediaDrm_getPropertyByteArray
|
||||
AMediaDrm_getPropertyString
|
||||
AMediaDrm_getProvisionRequest
|
||||
AMediaDrm_getSecureStops
|
||||
AMediaDrm_isCryptoSchemeSupported
|
||||
AMediaDrm_openSession
|
||||
AMediaDrm_provideKeyResponse
|
||||
AMediaDrm_provideProvisionResponse
|
||||
AMediaDrm_queryKeyStatus
|
||||
AMediaDrm_release
|
||||
AMediaDrm_releaseSecureStops
|
||||
AMediaDrm_removeKeys
|
||||
AMediaDrm_restoreKeys
|
||||
AMediaDrm_setOnEventListener
|
||||
AMediaDrm_setPropertyByteArray
|
||||
AMediaDrm_setPropertyString
|
||||
AMediaDrm_sign
|
||||
AMediaDrm_verify
|
||||
AMediaExtractor_advance
|
||||
AMediaExtractor_delete
|
||||
AMediaExtractor_getPsshInfo
|
||||
AMediaExtractor_getSampleCryptoInfo
|
||||
AMediaExtractor_getSampleFlags
|
||||
AMediaExtractor_getSampleTime
|
||||
AMediaExtractor_getSampleTrackIndex
|
||||
AMediaExtractor_getTrackCount
|
||||
AMediaExtractor_getTrackFormat
|
||||
AMediaExtractor_new
|
||||
AMediaExtractor_readSampleData
|
||||
AMediaExtractor_seekTo
|
||||
AMediaExtractor_selectTrack
|
||||
AMediaExtractor_setDataSource
|
||||
AMediaExtractor_setDataSourceFd
|
||||
AMediaExtractor_unselectTrack
|
||||
AMediaFormat_delete
|
||||
AMediaFormat_getBuffer
|
||||
AMediaFormat_getFloat
|
||||
AMediaFormat_getInt32
|
||||
AMediaFormat_getInt64
|
||||
AMediaFormat_getSize
|
||||
AMediaFormat_getString
|
||||
AMediaFormat_new
|
||||
AMediaFormat_setBuffer
|
||||
AMediaFormat_setFloat
|
||||
AMediaFormat_setInt32
|
||||
AMediaFormat_setInt64
|
||||
AMediaFormat_setString
|
||||
AMediaFormat_toString
|
||||
AMediaMuxer_addTrack
|
||||
AMediaMuxer_delete
|
||||
AMediaMuxer_new
|
||||
AMediaMuxer_setLocation
|
||||
AMediaMuxer_setOrientationHint
|
||||
AMediaMuxer_start
|
||||
AMediaMuxer_stop
|
||||
AMediaMuxer_writeSampleData
|
||||
__popcountdi2
|
||||
@@ -1,24 +0,0 @@
|
||||
AMEDIAFORMAT_KEY_AAC_PROFILE
|
||||
AMEDIAFORMAT_KEY_BIT_RATE
|
||||
AMEDIAFORMAT_KEY_CHANNEL_COUNT
|
||||
AMEDIAFORMAT_KEY_CHANNEL_MASK
|
||||
AMEDIAFORMAT_KEY_COLOR_FORMAT
|
||||
AMEDIAFORMAT_KEY_DURATION
|
||||
AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL
|
||||
AMEDIAFORMAT_KEY_FRAME_RATE
|
||||
AMEDIAFORMAT_KEY_HEIGHT
|
||||
AMEDIAFORMAT_KEY_IS_ADTS
|
||||
AMEDIAFORMAT_KEY_IS_AUTOSELECT
|
||||
AMEDIAFORMAT_KEY_IS_DEFAULT
|
||||
AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE
|
||||
AMEDIAFORMAT_KEY_I_FRAME_INTERVAL
|
||||
AMEDIAFORMAT_KEY_LANGUAGE
|
||||
AMEDIAFORMAT_KEY_MAX_HEIGHT
|
||||
AMEDIAFORMAT_KEY_MAX_INPUT_SIZE
|
||||
AMEDIAFORMAT_KEY_MAX_WIDTH
|
||||
AMEDIAFORMAT_KEY_MIME
|
||||
AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP
|
||||
AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER
|
||||
AMEDIAFORMAT_KEY_SAMPLE_RATE
|
||||
AMEDIAFORMAT_KEY_STRIDE
|
||||
AMEDIAFORMAT_KEY_WIDTH
|
||||
@@ -1,91 +0,0 @@
|
||||
AMediaCodecCryptoInfo_delete
|
||||
AMediaCodecCryptoInfo_getClearBytes
|
||||
AMediaCodecCryptoInfo_getEncryptedBytes
|
||||
AMediaCodecCryptoInfo_getIV
|
||||
AMediaCodecCryptoInfo_getKey
|
||||
AMediaCodecCryptoInfo_getMode
|
||||
AMediaCodecCryptoInfo_getNumSubSamples
|
||||
AMediaCodecCryptoInfo_new
|
||||
AMediaCodec_configure
|
||||
AMediaCodec_createCodecByName
|
||||
AMediaCodec_createDecoderByType
|
||||
AMediaCodec_createEncoderByType
|
||||
AMediaCodec_delete
|
||||
AMediaCodec_dequeueInputBuffer
|
||||
AMediaCodec_dequeueOutputBuffer
|
||||
AMediaCodec_flush
|
||||
AMediaCodec_getInputBuffer
|
||||
AMediaCodec_getOutputBuffer
|
||||
AMediaCodec_getOutputFormat
|
||||
AMediaCodec_queueInputBuffer
|
||||
AMediaCodec_queueSecureInputBuffer
|
||||
AMediaCodec_releaseOutputBuffer
|
||||
AMediaCodec_releaseOutputBufferAtTime
|
||||
AMediaCodec_start
|
||||
AMediaCodec_stop
|
||||
AMediaCrypto_delete
|
||||
AMediaCrypto_isCryptoSchemeSupported
|
||||
AMediaCrypto_new
|
||||
AMediaCrypto_requiresSecureDecoderComponent
|
||||
AMediaDrm_closeSession
|
||||
AMediaDrm_createByUUID
|
||||
AMediaDrm_decrypt
|
||||
AMediaDrm_encrypt
|
||||
AMediaDrm_getKeyRequest
|
||||
AMediaDrm_getPropertyByteArray
|
||||
AMediaDrm_getPropertyString
|
||||
AMediaDrm_getProvisionRequest
|
||||
AMediaDrm_getSecureStops
|
||||
AMediaDrm_isCryptoSchemeSupported
|
||||
AMediaDrm_openSession
|
||||
AMediaDrm_provideKeyResponse
|
||||
AMediaDrm_provideProvisionResponse
|
||||
AMediaDrm_queryKeyStatus
|
||||
AMediaDrm_release
|
||||
AMediaDrm_releaseSecureStops
|
||||
AMediaDrm_removeKeys
|
||||
AMediaDrm_restoreKeys
|
||||
AMediaDrm_setOnEventListener
|
||||
AMediaDrm_setPropertyByteArray
|
||||
AMediaDrm_setPropertyString
|
||||
AMediaDrm_sign
|
||||
AMediaDrm_verify
|
||||
AMediaExtractor_advance
|
||||
AMediaExtractor_delete
|
||||
AMediaExtractor_getPsshInfo
|
||||
AMediaExtractor_getSampleCryptoInfo
|
||||
AMediaExtractor_getSampleFlags
|
||||
AMediaExtractor_getSampleTime
|
||||
AMediaExtractor_getSampleTrackIndex
|
||||
AMediaExtractor_getTrackCount
|
||||
AMediaExtractor_getTrackFormat
|
||||
AMediaExtractor_new
|
||||
AMediaExtractor_readSampleData
|
||||
AMediaExtractor_seekTo
|
||||
AMediaExtractor_selectTrack
|
||||
AMediaExtractor_setDataSource
|
||||
AMediaExtractor_setDataSourceFd
|
||||
AMediaExtractor_unselectTrack
|
||||
AMediaFormat_delete
|
||||
AMediaFormat_getBuffer
|
||||
AMediaFormat_getFloat
|
||||
AMediaFormat_getInt32
|
||||
AMediaFormat_getInt64
|
||||
AMediaFormat_getSize
|
||||
AMediaFormat_getString
|
||||
AMediaFormat_new
|
||||
AMediaFormat_setBuffer
|
||||
AMediaFormat_setFloat
|
||||
AMediaFormat_setInt32
|
||||
AMediaFormat_setInt64
|
||||
AMediaFormat_setString
|
||||
AMediaFormat_toString
|
||||
AMediaMuxer_addTrack
|
||||
AMediaMuxer_delete
|
||||
AMediaMuxer_new
|
||||
AMediaMuxer_setLocation
|
||||
AMediaMuxer_setOrientationHint
|
||||
AMediaMuxer_start
|
||||
AMediaMuxer_stop
|
||||
AMediaMuxer_writeSampleData
|
||||
__popcountdi2
|
||||
@@ -1,24 +0,0 @@
|
||||
AMEDIAFORMAT_KEY_AAC_PROFILE
|
||||
AMEDIAFORMAT_KEY_BIT_RATE
|
||||
AMEDIAFORMAT_KEY_CHANNEL_COUNT
|
||||
AMEDIAFORMAT_KEY_CHANNEL_MASK
|
||||
AMEDIAFORMAT_KEY_COLOR_FORMAT
|
||||
AMEDIAFORMAT_KEY_DURATION
|
||||
AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL
|
||||
AMEDIAFORMAT_KEY_FRAME_RATE
|
||||
AMEDIAFORMAT_KEY_HEIGHT
|
||||
AMEDIAFORMAT_KEY_IS_ADTS
|
||||
AMEDIAFORMAT_KEY_IS_AUTOSELECT
|
||||
AMEDIAFORMAT_KEY_IS_DEFAULT
|
||||
AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE
|
||||
AMEDIAFORMAT_KEY_I_FRAME_INTERVAL
|
||||
AMEDIAFORMAT_KEY_LANGUAGE
|
||||
AMEDIAFORMAT_KEY_MAX_HEIGHT
|
||||
AMEDIAFORMAT_KEY_MAX_INPUT_SIZE
|
||||
AMEDIAFORMAT_KEY_MAX_WIDTH
|
||||
AMEDIAFORMAT_KEY_MIME
|
||||
AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP
|
||||
AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER
|
||||
AMEDIAFORMAT_KEY_SAMPLE_RATE
|
||||
AMEDIAFORMAT_KEY_STRIDE
|
||||
AMEDIAFORMAT_KEY_WIDTH
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,373 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef OPENSL_ES_ANDROID_H_
|
||||
#define OPENSL_ES_ANDROID_H_
|
||||
|
||||
#include "OpenSLES_AndroidConfiguration.h"
|
||||
#include "OpenSLES_AndroidMetadata.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "OpenSLES.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android common types */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
typedef sl_int64_t SLAint64; /* 64 bit signed integer */
|
||||
|
||||
typedef sl_uint64_t SLAuint64; /* 64 bit unsigned integer */
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android PCM Data Format */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/* The following pcm representations and data formats map to those in OpenSLES 1.1 */
|
||||
#define SL_ANDROID_PCM_REPRESENTATION_SIGNED_INT ((SLuint32) 0x00000001)
|
||||
#define SL_ANDROID_PCM_REPRESENTATION_UNSIGNED_INT ((SLuint32) 0x00000002)
|
||||
#define SL_ANDROID_PCM_REPRESENTATION_FLOAT ((SLuint32) 0x00000003)
|
||||
|
||||
#define SL_ANDROID_DATAFORMAT_PCM_EX ((SLuint32) 0x00000004)
|
||||
|
||||
typedef struct SLAndroidDataFormat_PCM_EX_ {
|
||||
SLuint32 formatType;
|
||||
SLuint32 numChannels;
|
||||
SLuint32 sampleRate;
|
||||
SLuint32 bitsPerSample;
|
||||
SLuint32 containerSize;
|
||||
SLuint32 channelMask;
|
||||
SLuint32 endianness;
|
||||
SLuint32 representation;
|
||||
} SLAndroidDataFormat_PCM_EX;
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android Effect interface */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECT;
|
||||
|
||||
/** Android Effect interface methods */
|
||||
|
||||
struct SLAndroidEffectItf_;
|
||||
typedef const struct SLAndroidEffectItf_ * const * SLAndroidEffectItf;
|
||||
|
||||
struct SLAndroidEffectItf_ {
|
||||
|
||||
SLresult (*CreateEffect) (SLAndroidEffectItf self,
|
||||
SLInterfaceID effectImplementationId);
|
||||
|
||||
SLresult (*ReleaseEffect) (SLAndroidEffectItf self,
|
||||
SLInterfaceID effectImplementationId);
|
||||
|
||||
SLresult (*SetEnabled) (SLAndroidEffectItf self,
|
||||
SLInterfaceID effectImplementationId,
|
||||
SLboolean enabled);
|
||||
|
||||
SLresult (*IsEnabled) (SLAndroidEffectItf self,
|
||||
SLInterfaceID effectImplementationId,
|
||||
SLboolean *pEnabled);
|
||||
|
||||
SLresult (*SendCommand) (SLAndroidEffectItf self,
|
||||
SLInterfaceID effectImplementationId,
|
||||
SLuint32 command,
|
||||
SLuint32 commandSize,
|
||||
void *pCommandData,
|
||||
SLuint32 *replySize,
|
||||
void *pReplyData);
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android Effect Send interface */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTSEND;
|
||||
|
||||
/** Android Effect Send interface methods */
|
||||
|
||||
struct SLAndroidEffectSendItf_;
|
||||
typedef const struct SLAndroidEffectSendItf_ * const * SLAndroidEffectSendItf;
|
||||
|
||||
struct SLAndroidEffectSendItf_ {
|
||||
SLresult (*EnableEffectSend) (
|
||||
SLAndroidEffectSendItf self,
|
||||
SLInterfaceID effectImplementationId,
|
||||
SLboolean enable,
|
||||
SLmillibel initialLevel
|
||||
);
|
||||
SLresult (*IsEnabled) (
|
||||
SLAndroidEffectSendItf self,
|
||||
SLInterfaceID effectImplementationId,
|
||||
SLboolean *pEnable
|
||||
);
|
||||
SLresult (*SetDirectLevel) (
|
||||
SLAndroidEffectSendItf self,
|
||||
SLmillibel directLevel
|
||||
);
|
||||
SLresult (*GetDirectLevel) (
|
||||
SLAndroidEffectSendItf self,
|
||||
SLmillibel *pDirectLevel
|
||||
);
|
||||
SLresult (*SetSendLevel) (
|
||||
SLAndroidEffectSendItf self,
|
||||
SLInterfaceID effectImplementationId,
|
||||
SLmillibel sendLevel
|
||||
);
|
||||
SLresult (*GetSendLevel)(
|
||||
SLAndroidEffectSendItf self,
|
||||
SLInterfaceID effectImplementationId,
|
||||
SLmillibel *pSendLevel
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android Effect Capabilities interface */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
extern SL_API const SLInterfaceID SL_IID_ANDROIDEFFECTCAPABILITIES;
|
||||
|
||||
/** Android Effect Capabilities interface methods */
|
||||
|
||||
struct SLAndroidEffectCapabilitiesItf_;
|
||||
typedef const struct SLAndroidEffectCapabilitiesItf_ * const * SLAndroidEffectCapabilitiesItf;
|
||||
|
||||
struct SLAndroidEffectCapabilitiesItf_ {
|
||||
|
||||
SLresult (*QueryNumEffects) (SLAndroidEffectCapabilitiesItf self,
|
||||
SLuint32 *pNumSupportedEffects);
|
||||
|
||||
|
||||
SLresult (*QueryEffect) (SLAndroidEffectCapabilitiesItf self,
|
||||
SLuint32 index,
|
||||
SLInterfaceID *pEffectType,
|
||||
SLInterfaceID *pEffectImplementation,
|
||||
SLchar *pName,
|
||||
SLuint16 *pNameSize);
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android Configuration interface */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
extern SL_API const SLInterfaceID SL_IID_ANDROIDCONFIGURATION;
|
||||
|
||||
/** Android Configuration interface methods */
|
||||
|
||||
struct SLAndroidConfigurationItf_;
|
||||
typedef const struct SLAndroidConfigurationItf_ * const * SLAndroidConfigurationItf;
|
||||
|
||||
struct SLAndroidConfigurationItf_ {
|
||||
|
||||
SLresult (*SetConfiguration) (SLAndroidConfigurationItf self,
|
||||
const SLchar *configKey,
|
||||
const void *pConfigValue,
|
||||
SLuint32 valueSize);
|
||||
|
||||
SLresult (*GetConfiguration) (SLAndroidConfigurationItf self,
|
||||
const SLchar *configKey,
|
||||
SLuint32 *pValueSize,
|
||||
void *pConfigValue
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android Simple Buffer Queue Interface */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
extern SL_API const SLInterfaceID SL_IID_ANDROIDSIMPLEBUFFERQUEUE;
|
||||
|
||||
struct SLAndroidSimpleBufferQueueItf_;
|
||||
typedef const struct SLAndroidSimpleBufferQueueItf_ * const * SLAndroidSimpleBufferQueueItf;
|
||||
|
||||
typedef void (SLAPIENTRY *slAndroidSimpleBufferQueueCallback)(
|
||||
SLAndroidSimpleBufferQueueItf caller,
|
||||
void *pContext
|
||||
);
|
||||
|
||||
/** Android simple buffer queue state **/
|
||||
|
||||
typedef struct SLAndroidSimpleBufferQueueState_ {
|
||||
SLuint32 count;
|
||||
SLuint32 index;
|
||||
} SLAndroidSimpleBufferQueueState;
|
||||
|
||||
|
||||
struct SLAndroidSimpleBufferQueueItf_ {
|
||||
SLresult (*Enqueue) (
|
||||
SLAndroidSimpleBufferQueueItf self,
|
||||
const void *pBuffer,
|
||||
SLuint32 size
|
||||
);
|
||||
SLresult (*Clear) (
|
||||
SLAndroidSimpleBufferQueueItf self
|
||||
);
|
||||
SLresult (*GetState) (
|
||||
SLAndroidSimpleBufferQueueItf self,
|
||||
SLAndroidSimpleBufferQueueState *pState
|
||||
);
|
||||
SLresult (*RegisterCallback) (
|
||||
SLAndroidSimpleBufferQueueItf self,
|
||||
slAndroidSimpleBufferQueueCallback callback,
|
||||
void* pContext
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android Buffer Queue Interface */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
extern SL_API const SLInterfaceID SL_IID_ANDROIDBUFFERQUEUESOURCE;
|
||||
|
||||
struct SLAndroidBufferQueueItf_;
|
||||
typedef const struct SLAndroidBufferQueueItf_ * const * SLAndroidBufferQueueItf;
|
||||
|
||||
#define SL_ANDROID_ITEMKEY_NONE ((SLuint32) 0x00000000)
|
||||
#define SL_ANDROID_ITEMKEY_EOS ((SLuint32) 0x00000001)
|
||||
#define SL_ANDROID_ITEMKEY_DISCONTINUITY ((SLuint32) 0x00000002)
|
||||
#define SL_ANDROID_ITEMKEY_BUFFERQUEUEEVENT ((SLuint32) 0x00000003)
|
||||
#define SL_ANDROID_ITEMKEY_FORMAT_CHANGE ((SLuint32) 0x00000004)
|
||||
|
||||
#define SL_ANDROIDBUFFERQUEUEEVENT_NONE ((SLuint32) 0x00000000)
|
||||
#define SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED ((SLuint32) 0x00000001)
|
||||
#if 0 // reserved for future use
|
||||
#define SL_ANDROIDBUFFERQUEUEEVENT_UNREALIZED ((SLuint32) 0x00000002)
|
||||
#define SL_ANDROIDBUFFERQUEUEEVENT_CLEARED ((SLuint32) 0x00000004)
|
||||
#define SL_ANDROIDBUFFERQUEUEEVENT_STOPPED ((SLuint32) 0x00000008)
|
||||
#define SL_ANDROIDBUFFERQUEUEEVENT_ERROR ((SLuint32) 0x00000010)
|
||||
#define SL_ANDROIDBUFFERQUEUEEVENT_CONTENT_END ((SLuint32) 0x00000020)
|
||||
#endif
|
||||
|
||||
typedef struct SLAndroidBufferItem_ {
|
||||
SLuint32 itemKey; // identifies the item
|
||||
SLuint32 itemSize;
|
||||
SLuint8 itemData[0];
|
||||
} SLAndroidBufferItem;
|
||||
|
||||
typedef SLresult (SLAPIENTRY *slAndroidBufferQueueCallback)(
|
||||
SLAndroidBufferQueueItf caller,/* input */
|
||||
void *pCallbackContext, /* input */
|
||||
void *pBufferContext, /* input */
|
||||
void *pBufferData, /* input */
|
||||
SLuint32 dataSize, /* input */
|
||||
SLuint32 dataUsed, /* input */
|
||||
const SLAndroidBufferItem *pItems,/* input */
|
||||
SLuint32 itemsLength /* input */
|
||||
);
|
||||
|
||||
typedef struct SLAndroidBufferQueueState_ {
|
||||
SLuint32 count;
|
||||
SLuint32 index;
|
||||
} SLAndroidBufferQueueState;
|
||||
|
||||
struct SLAndroidBufferQueueItf_ {
|
||||
SLresult (*RegisterCallback) (
|
||||
SLAndroidBufferQueueItf self,
|
||||
slAndroidBufferQueueCallback callback,
|
||||
void* pCallbackContext
|
||||
);
|
||||
|
||||
SLresult (*Clear) (
|
||||
SLAndroidBufferQueueItf self
|
||||
);
|
||||
|
||||
SLresult (*Enqueue) (
|
||||
SLAndroidBufferQueueItf self,
|
||||
void *pBufferContext,
|
||||
void *pData,
|
||||
SLuint32 dataLength,
|
||||
const SLAndroidBufferItem *pItems,
|
||||
SLuint32 itemsLength
|
||||
);
|
||||
|
||||
SLresult (*GetState) (
|
||||
SLAndroidBufferQueueItf self,
|
||||
SLAndroidBufferQueueState *pState
|
||||
);
|
||||
|
||||
SLresult (*SetCallbackEventsMask) (
|
||||
SLAndroidBufferQueueItf self,
|
||||
SLuint32 eventFlags
|
||||
);
|
||||
|
||||
SLresult (*GetCallbackEventsMask) (
|
||||
SLAndroidBufferQueueItf self,
|
||||
SLuint32 *pEventFlags
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android File Descriptor Data Locator */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/** Addendum to Data locator macros */
|
||||
#define SL_DATALOCATOR_ANDROIDFD ((SLuint32) 0x800007BC)
|
||||
|
||||
#define SL_DATALOCATOR_ANDROIDFD_USE_FILE_SIZE ((SLAint64) 0xFFFFFFFFFFFFFFFFll)
|
||||
|
||||
/** File Descriptor-based data locator definition, locatorType must be SL_DATALOCATOR_ANDROIDFD */
|
||||
typedef struct SLDataLocator_AndroidFD_ {
|
||||
SLuint32 locatorType;
|
||||
SLint32 fd;
|
||||
SLAint64 offset;
|
||||
SLAint64 length;
|
||||
} SLDataLocator_AndroidFD;
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android Android Simple Buffer Queue Data Locator */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/** Addendum to Data locator macros */
|
||||
#define SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE ((SLuint32) 0x800007BD)
|
||||
|
||||
/** BufferQueue-based data locator definition where locatorType must be SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE*/
|
||||
typedef struct SLDataLocator_AndroidSimpleBufferQueue {
|
||||
SLuint32 locatorType;
|
||||
SLuint32 numBuffers;
|
||||
} SLDataLocator_AndroidSimpleBufferQueue;
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android Buffer Queue Data Locator */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/** Addendum to Data locator macros */
|
||||
#define SL_DATALOCATOR_ANDROIDBUFFERQUEUE ((SLuint32) 0x800007BE)
|
||||
|
||||
/** Android Buffer Queue-based data locator definition,
|
||||
* locatorType must be SL_DATALOCATOR_ANDROIDBUFFERQUEUE */
|
||||
typedef struct SLDataLocator_AndroidBufferQueue_ {
|
||||
SLuint32 locatorType;
|
||||
SLuint32 numBuffers;
|
||||
} SLDataLocator_AndroidBufferQueue;
|
||||
|
||||
/**
|
||||
* MIME types required for data in Android Buffer Queues
|
||||
*/
|
||||
#define SL_ANDROID_MIME_AACADTS ((SLchar *) "audio/vnd.android.aac-adts")
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* OPENSL_ES_ANDROID_H_ */
|
||||
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef OPENSL_ES_ANDROIDCONFIGURATION_H_
|
||||
#define OPENSL_ES_ANDROIDCONFIGURATION_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android AudioRecorder configuration */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/** Audio recording preset */
|
||||
/** Audio recording preset key */
|
||||
#define SL_ANDROID_KEY_RECORDING_PRESET ((const SLchar*) "androidRecordingPreset")
|
||||
/** Audio recording preset values */
|
||||
/** preset "none" cannot be set, it is used to indicate the current settings
|
||||
* do not match any of the presets. */
|
||||
#define SL_ANDROID_RECORDING_PRESET_NONE ((SLuint32) 0x00000000)
|
||||
/** generic recording configuration on the platform */
|
||||
#define SL_ANDROID_RECORDING_PRESET_GENERIC ((SLuint32) 0x00000001)
|
||||
/** uses the microphone audio source with the same orientation as the camera
|
||||
* if available, the main device microphone otherwise */
|
||||
#define SL_ANDROID_RECORDING_PRESET_CAMCORDER ((SLuint32) 0x00000002)
|
||||
/** uses the main microphone tuned for voice recognition */
|
||||
#define SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION ((SLuint32) 0x00000003)
|
||||
/** uses the main microphone tuned for audio communications */
|
||||
#define SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION ((SLuint32) 0x00000004)
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android AudioPlayer configuration */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/** Audio playback stream type */
|
||||
/** Audio playback stream type key */
|
||||
#define SL_ANDROID_KEY_STREAM_TYPE ((const SLchar*) "androidPlaybackStreamType")
|
||||
|
||||
/** Audio playback stream type values */
|
||||
/* same as android.media.AudioManager.STREAM_VOICE_CALL */
|
||||
#define SL_ANDROID_STREAM_VOICE ((SLint32) 0x00000000)
|
||||
/* same as android.media.AudioManager.STREAM_SYSTEM */
|
||||
#define SL_ANDROID_STREAM_SYSTEM ((SLint32) 0x00000001)
|
||||
/* same as android.media.AudioManager.STREAM_RING */
|
||||
#define SL_ANDROID_STREAM_RING ((SLint32) 0x00000002)
|
||||
/* same as android.media.AudioManager.STREAM_MUSIC */
|
||||
#define SL_ANDROID_STREAM_MEDIA ((SLint32) 0x00000003)
|
||||
/* same as android.media.AudioManager.STREAM_ALARM */
|
||||
#define SL_ANDROID_STREAM_ALARM ((SLint32) 0x00000004)
|
||||
/* same as android.media.AudioManager.STREAM_NOTIFICATION */
|
||||
#define SL_ANDROID_STREAM_NOTIFICATION ((SLint32) 0x00000005)
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* OPENSL_ES_ANDROIDCONFIGURATION_H_ */
|
||||
@@ -1,47 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2011 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef OPENSL_ES_ANDROIDMETADATA_H_
|
||||
#define OPENSL_ES_ANDROIDMETADATA_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Android metadata keys */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Additional metadata keys to be used in SLMetadataExtractionItf:
|
||||
* the ANDROID_KEY_PCMFORMAT_* keys follow the fields of the SLDataFormat_PCM struct, and as such
|
||||
* all values corresponding to these keys are of SLuint32 type, and are defined as the fields
|
||||
* of the same name in SLDataFormat_PCM. The exception is that sample rate is expressed here
|
||||
* in Hz units, rather than in milliHz units.
|
||||
*/
|
||||
#define ANDROID_KEY_PCMFORMAT_NUMCHANNELS "AndroidPcmFormatNumChannels"
|
||||
#define ANDROID_KEY_PCMFORMAT_SAMPLERATE "AndroidPcmFormatSampleRate"
|
||||
#define ANDROID_KEY_PCMFORMAT_BITSPERSAMPLE "AndroidPcmFormatBitsPerSample"
|
||||
#define ANDROID_KEY_PCMFORMAT_CONTAINERSIZE "AndroidPcmFormatContainerSize"
|
||||
#define ANDROID_KEY_PCMFORMAT_CHANNELMASK "AndroidPcmFormatChannelMask"
|
||||
#define ANDROID_KEY_PCMFORMAT_ENDIANNESS "AndroidPcmFormatEndianness"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* OPENSL_ES_ANDROIDMETADATA_H_ */
|
||||
@@ -1,57 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2007-2009 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and /or associated documentation files (the "Materials "), to
|
||||
* deal in the Materials without restriction, including without limitation the
|
||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Materials, and to permit persons to whom the Materials are
|
||||
* furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
|
||||
* MATERIALS.
|
||||
*
|
||||
* OpenSLES_Platform.h - OpenSL ES version 1.0
|
||||
*
|
||||
*/
|
||||
|
||||
/****************************************************************************/
|
||||
/* NOTE: This file contains definitions for the base types and the */
|
||||
/* SLAPIENTRY macro. This file **WILL NEED TO BE EDITED** to provide */
|
||||
/* the correct definitions specific to the platform being used. */
|
||||
/****************************************************************************/
|
||||
|
||||
#ifndef _OPENSLES_PLATFORM_H_
|
||||
#define _OPENSLES_PLATFORM_H_
|
||||
|
||||
typedef unsigned char sl_uint8_t;
|
||||
typedef signed char sl_int8_t;
|
||||
typedef unsigned short sl_uint16_t;
|
||||
typedef signed short sl_int16_t;
|
||||
typedef unsigned int /*long*/ sl_uint32_t;
|
||||
typedef signed int /*long*/ sl_int32_t;
|
||||
typedef long long sl_int64_t;
|
||||
typedef unsigned long long sl_uint64_t;
|
||||
|
||||
#ifndef SL_API
|
||||
#ifdef __GNUC__
|
||||
#define SL_API /* override per-platform */
|
||||
#else
|
||||
#define SL_API __declspec(dllimport)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef SLAPIENTRY
|
||||
#define SLAPIENTRY
|
||||
#endif
|
||||
|
||||
#endif /* _OPENSLES_PLATFORM_H_ */
|
||||
@@ -1,235 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file defines an NDK API.
|
||||
* Do not remove methods.
|
||||
* Do not change method signatures.
|
||||
* Do not change the value of constants.
|
||||
* Do not change the size of any of the classes defined in here.
|
||||
* Do not reference types that are not part of the NDK.
|
||||
* Do not #include files that aren't part of the NDK.
|
||||
*/
|
||||
|
||||
#ifndef _NDK_MEDIA_CODEC_H
|
||||
#define _NDK_MEDIA_CODEC_H
|
||||
|
||||
#include <android/native_window.h>
|
||||
|
||||
#include "NdkMediaCrypto.h"
|
||||
#include "NdkMediaError.h"
|
||||
#include "NdkMediaFormat.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
struct AMediaCodec;
|
||||
typedef struct AMediaCodec AMediaCodec;
|
||||
|
||||
struct AMediaCodecBufferInfo {
|
||||
int32_t offset;
|
||||
int32_t size;
|
||||
int64_t presentationTimeUs;
|
||||
uint32_t flags;
|
||||
};
|
||||
typedef struct AMediaCodecBufferInfo AMediaCodecBufferInfo;
|
||||
typedef struct AMediaCodecCryptoInfo AMediaCodecCryptoInfo;
|
||||
|
||||
enum {
|
||||
AMEDIACODEC_BUFFER_FLAG_END_OF_STREAM = 4,
|
||||
AMEDIACODEC_CONFIGURE_FLAG_ENCODE = 1,
|
||||
AMEDIACODEC_INFO_OUTPUT_BUFFERS_CHANGED = -3,
|
||||
AMEDIACODEC_INFO_OUTPUT_FORMAT_CHANGED = -2,
|
||||
AMEDIACODEC_INFO_TRY_AGAIN_LATER = -1
|
||||
};
|
||||
|
||||
/**
|
||||
* Create codec by name. Use this if you know the exact codec you want to use.
|
||||
* When configuring, you will need to specify whether to use the codec as an
|
||||
* encoder or decoder.
|
||||
*/
|
||||
AMediaCodec* AMediaCodec_createCodecByName(const char *name);
|
||||
|
||||
/**
|
||||
* Create codec by mime type. Most applications will use this, specifying a
|
||||
* mime type obtained from media extractor.
|
||||
*/
|
||||
AMediaCodec* AMediaCodec_createDecoderByType(const char *mime_type);
|
||||
|
||||
/**
|
||||
* Create encoder by name.
|
||||
*/
|
||||
AMediaCodec* AMediaCodec_createEncoderByType(const char *mime_type);
|
||||
|
||||
/**
|
||||
* delete the codec and free its resources
|
||||
*/
|
||||
media_status_t AMediaCodec_delete(AMediaCodec*);
|
||||
|
||||
/**
|
||||
* Configure the codec. For decoding you would typically get the format from an extractor.
|
||||
*/
|
||||
media_status_t AMediaCodec_configure(
|
||||
AMediaCodec*,
|
||||
const AMediaFormat* format,
|
||||
ANativeWindow* surface,
|
||||
AMediaCrypto *crypto,
|
||||
uint32_t flags);
|
||||
|
||||
/**
|
||||
* Start the codec. A codec must be configured before it can be started, and must be started
|
||||
* before buffers can be sent to it.
|
||||
*/
|
||||
media_status_t AMediaCodec_start(AMediaCodec*);
|
||||
|
||||
/**
|
||||
* Stop the codec.
|
||||
*/
|
||||
media_status_t AMediaCodec_stop(AMediaCodec*);
|
||||
|
||||
/*
|
||||
* Flush the codec's input and output. All indices previously returned from calls to
|
||||
* AMediaCodec_dequeueInputBuffer and AMediaCodec_dequeueOutputBuffer become invalid.
|
||||
*/
|
||||
media_status_t AMediaCodec_flush(AMediaCodec*);
|
||||
|
||||
/**
|
||||
* Get an input buffer. The specified buffer index must have been previously obtained from
|
||||
* dequeueInputBuffer, and not yet queued.
|
||||
*/
|
||||
uint8_t* AMediaCodec_getInputBuffer(AMediaCodec*, size_t idx, size_t *out_size);
|
||||
|
||||
/**
|
||||
* Get an output buffer. The specified buffer index must have been previously obtained from
|
||||
* dequeueOutputBuffer, and not yet queued.
|
||||
*/
|
||||
uint8_t* AMediaCodec_getOutputBuffer(AMediaCodec*, size_t idx, size_t *out_size);
|
||||
|
||||
/**
|
||||
* Get the index of the next available input buffer. An app will typically use this with
|
||||
* getInputBuffer() to get a pointer to the buffer, then copy the data to be encoded or decoded
|
||||
* into the buffer before passing it to the codec.
|
||||
*/
|
||||
ssize_t AMediaCodec_dequeueInputBuffer(AMediaCodec*, int64_t timeoutUs);
|
||||
|
||||
/**
|
||||
* Send the specified buffer to the codec for processing.
|
||||
*/
|
||||
media_status_t AMediaCodec_queueInputBuffer(AMediaCodec*,
|
||||
size_t idx, off_t offset, size_t size, uint64_t time, uint32_t flags);
|
||||
|
||||
/**
|
||||
* Send the specified buffer to the codec for processing.
|
||||
*/
|
||||
media_status_t AMediaCodec_queueSecureInputBuffer(AMediaCodec*,
|
||||
size_t idx, off_t offset, AMediaCodecCryptoInfo*, uint64_t time, uint32_t flags);
|
||||
|
||||
/**
|
||||
* Get the index of the next available buffer of processed data.
|
||||
*/
|
||||
ssize_t AMediaCodec_dequeueOutputBuffer(AMediaCodec*, AMediaCodecBufferInfo *info, int64_t timeoutUs);
|
||||
AMediaFormat* AMediaCodec_getOutputFormat(AMediaCodec*);
|
||||
|
||||
/**
|
||||
* If you are done with a buffer, use this call to return the buffer to
|
||||
* the codec. If you previously specified a surface when configuring this
|
||||
* video decoder you can optionally render the buffer.
|
||||
*/
|
||||
media_status_t AMediaCodec_releaseOutputBuffer(AMediaCodec*, size_t idx, bool render);
|
||||
|
||||
/**
|
||||
* If you are done with a buffer, use this call to update its surface timestamp
|
||||
* and return it to the codec to render it on the output surface. If you
|
||||
* have not specified an output surface when configuring this video codec,
|
||||
* this call will simply return the buffer to the codec.
|
||||
*
|
||||
* For more details, see the Java documentation for MediaCodec.releaseOutputBuffer.
|
||||
*/
|
||||
media_status_t AMediaCodec_releaseOutputBufferAtTime(
|
||||
AMediaCodec *mData, size_t idx, int64_t timestampNs);
|
||||
|
||||
|
||||
typedef enum {
|
||||
AMEDIACODECRYPTOINFO_MODE_CLEAR = 0,
|
||||
AMEDIACODECRYPTOINFO_MODE_AES_CTR = 1
|
||||
} cryptoinfo_mode_t;
|
||||
|
||||
/**
|
||||
* Create an AMediaCodecCryptoInfo from scratch. Use this if you need to use custom
|
||||
* crypto info, rather than one obtained from AMediaExtractor.
|
||||
*
|
||||
* AMediaCodecCryptoInfo describes the structure of an (at least
|
||||
* partially) encrypted input sample.
|
||||
* A buffer's data is considered to be partitioned into "subsamples",
|
||||
* each subsample starts with a (potentially empty) run of plain,
|
||||
* unencrypted bytes followed by a (also potentially empty) run of
|
||||
* encrypted bytes.
|
||||
* numBytesOfClearData can be null to indicate that all data is encrypted.
|
||||
* This information encapsulates per-sample metadata as outlined in
|
||||
* ISO/IEC FDIS 23001-7:2011 "Common encryption in ISO base media file format files".
|
||||
*/
|
||||
AMediaCodecCryptoInfo *AMediaCodecCryptoInfo_new(
|
||||
int numsubsamples,
|
||||
uint8_t key[16],
|
||||
uint8_t iv[16],
|
||||
cryptoinfo_mode_t mode,
|
||||
size_t *clearbytes,
|
||||
size_t *encryptedbytes);
|
||||
|
||||
/**
|
||||
* delete an AMediaCodecCryptoInfo created previously with AMediaCodecCryptoInfo_new, or
|
||||
* obtained from AMediaExtractor
|
||||
*/
|
||||
media_status_t AMediaCodecCryptoInfo_delete(AMediaCodecCryptoInfo*);
|
||||
|
||||
/**
|
||||
* The number of subsamples that make up the buffer's contents.
|
||||
*/
|
||||
size_t AMediaCodecCryptoInfo_getNumSubSamples(AMediaCodecCryptoInfo*);
|
||||
|
||||
/**
|
||||
* A 16-byte opaque key
|
||||
*/
|
||||
media_status_t AMediaCodecCryptoInfo_getKey(AMediaCodecCryptoInfo*, uint8_t *dst);
|
||||
|
||||
/**
|
||||
* A 16-byte initialization vector
|
||||
*/
|
||||
media_status_t AMediaCodecCryptoInfo_getIV(AMediaCodecCryptoInfo*, uint8_t *dst);
|
||||
|
||||
/**
|
||||
* The type of encryption that has been applied,
|
||||
* one of AMEDIACODECRYPTOINFO_MODE_CLEAR or AMEDIACODECRYPTOINFO_MODE_AES_CTR.
|
||||
*/
|
||||
cryptoinfo_mode_t AMediaCodecCryptoInfo_getMode(AMediaCodecCryptoInfo*);
|
||||
|
||||
/**
|
||||
* The number of leading unencrypted bytes in each subsample.
|
||||
*/
|
||||
media_status_t AMediaCodecCryptoInfo_getClearBytes(AMediaCodecCryptoInfo*, size_t *dst);
|
||||
|
||||
/**
|
||||
* The number of trailing encrypted bytes in each subsample.
|
||||
*/
|
||||
media_status_t AMediaCodecCryptoInfo_getEncryptedBytes(AMediaCodecCryptoInfo*, size_t *dst);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif //_NDK_MEDIA_CODEC_H
|
||||
@@ -1,56 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This file defines an NDK API.
|
||||
* Do not remove methods.
|
||||
* Do not change method signatures.
|
||||
* Do not change the value of constants.
|
||||
* Do not change the size of any of the classes defined in here.
|
||||
* Do not reference types that are not part of the NDK.
|
||||
* Do not #include files that aren't part of the NDK.
|
||||
*/
|
||||
|
||||
#ifndef _NDK_MEDIA_CRYPTO_H
|
||||
#define _NDK_MEDIA_CRYPTO_H
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct AMediaCrypto;
|
||||
typedef struct AMediaCrypto AMediaCrypto;
|
||||
|
||||
typedef uint8_t AMediaUUID[16];
|
||||
|
||||
bool AMediaCrypto_isCryptoSchemeSupported(const AMediaUUID uuid);
|
||||
|
||||
bool AMediaCrypto_requiresSecureDecoderComponent(const char *mime);
|
||||
|
||||
AMediaCrypto* AMediaCrypto_new(const AMediaUUID uuid, const void *initData, size_t initDataSize);
|
||||
|
||||
void AMediaCrypto_delete(AMediaCrypto* crypto);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // _NDK_MEDIA_CRYPTO_H
|
||||
@@ -1,455 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file defines an NDK API.
|
||||
* Do not remove methods.
|
||||
* Do not change method signatures.
|
||||
* Do not change the value of constants.
|
||||
* Do not change the size of any of the classes defined in here.
|
||||
* Do not reference types that are not part of the NDK.
|
||||
* Do not #include files that aren't part of the NDK.
|
||||
*/
|
||||
|
||||
#ifndef _NDK_MEDIA_DRM_H
|
||||
#define _NDK_MEDIA_DRM_H
|
||||
|
||||
#include "NdkMediaError.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
struct AMediaDrm;
|
||||
typedef struct AMediaDrm AMediaDrm;
|
||||
|
||||
typedef struct {
|
||||
const uint8_t *ptr;
|
||||
size_t length;
|
||||
} AMediaDrmByteArray;
|
||||
|
||||
typedef AMediaDrmByteArray AMediaDrmSessionId;
|
||||
typedef AMediaDrmByteArray AMediaDrmScope;
|
||||
typedef AMediaDrmByteArray AMediaDrmKeySetId;
|
||||
typedef AMediaDrmByteArray AMediaDrmSecureStop;
|
||||
|
||||
|
||||
typedef enum AMediaDrmEventType {
|
||||
/**
|
||||
* This event type indicates that the app needs to request a certificate from
|
||||
* the provisioning server. The request message data is obtained using
|
||||
* AMediaDrm_getProvisionRequest.
|
||||
*/
|
||||
EVENT_PROVISION_REQUIRED = 1,
|
||||
|
||||
/**
|
||||
* This event type indicates that the app needs to request keys from a license
|
||||
* server. The request message data is obtained using AMediaDrm_getKeyRequest.
|
||||
*/
|
||||
EVENT_KEY_REQUIRED = 2,
|
||||
|
||||
/**
|
||||
* This event type indicates that the licensed usage duration for keys in a session
|
||||
* has expired. The keys are no longer valid.
|
||||
*/
|
||||
EVENT_KEY_EXPIRED = 3,
|
||||
|
||||
/**
|
||||
* This event may indicate some specific vendor-defined condition, see your
|
||||
* DRM provider documentation for details
|
||||
*/
|
||||
EVENT_VENDOR_DEFINED = 4
|
||||
} AMediaDrmEventType;
|
||||
|
||||
typedef void (*AMediaDrmEventListener)(AMediaDrm *, const AMediaDrmSessionId *sessionId,
|
||||
AMediaDrmEventType eventType, int extra, const uint8_t *data, size_t dataSize);
|
||||
|
||||
|
||||
/**
|
||||
* Query if the given scheme identified by its UUID is supported on this device, and
|
||||
* whether the drm plugin is able to handle the media container format specified by mimeType.
|
||||
*
|
||||
* uuid identifies the universal unique ID of the crypto scheme. uuid must be 16 bytes.
|
||||
* mimeType is the MIME type of the media container, e.g. "video/mp4". If mimeType
|
||||
* is not known or required, it can be provided as NULL.
|
||||
*/
|
||||
bool AMediaDrm_isCryptoSchemeSupported(const uint8_t *uuid, const char *mimeType);
|
||||
|
||||
/**
|
||||
* Create a MediaDrm instance from a UUID
|
||||
* uuid identifies the universal unique ID of the crypto scheme. uuid must be 16 bytes.
|
||||
*/
|
||||
AMediaDrm* AMediaDrm_createByUUID(const uint8_t *uuid);
|
||||
|
||||
/**
|
||||
* Release a MediaDrm object
|
||||
*/
|
||||
void AMediaDrm_release(AMediaDrm *);
|
||||
|
||||
/**
|
||||
* Register a callback to be invoked when an event occurs
|
||||
*
|
||||
* listener is the callback that will be invoked on event
|
||||
*/
|
||||
media_status_t AMediaDrm_setOnEventListener(AMediaDrm *, AMediaDrmEventListener listener);
|
||||
|
||||
/**
|
||||
* Open a new session with the MediaDrm object. A session ID is returned.
|
||||
*
|
||||
* returns MEDIADRM_NOT_PROVISIONED_ERROR if provisioning is needed
|
||||
* returns MEDIADRM_RESOURCE_BUSY_ERROR if required resources are in use
|
||||
*/
|
||||
media_status_t AMediaDrm_openSession(AMediaDrm *, AMediaDrmSessionId *sessionId);
|
||||
|
||||
/**
|
||||
* Close a session on the MediaDrm object that was previously opened
|
||||
* with AMediaDrm_openSession.
|
||||
*/
|
||||
media_status_t AMediaDrm_closeSession(AMediaDrm *, const AMediaDrmSessionId *sessionId);
|
||||
|
||||
typedef enum AMediaDrmKeyType {
|
||||
/**
|
||||
* This key request type species that the keys will be for online use, they will
|
||||
* not be saved to the device for subsequent use when the device is not connected
|
||||
* to a network.
|
||||
*/
|
||||
KEY_TYPE_STREAMING = 1,
|
||||
|
||||
/**
|
||||
* This key request type specifies that the keys will be for offline use, they
|
||||
* will be saved to the device for use when the device is not connected to a network.
|
||||
*/
|
||||
KEY_TYPE_OFFLINE = 2,
|
||||
|
||||
/**
|
||||
* This key request type specifies that previously saved offline keys should be released.
|
||||
*/
|
||||
KEY_TYPE_RELEASE = 3
|
||||
} AMediaDrmKeyType;
|
||||
|
||||
/**
|
||||
* Data type containing {key, value} pair
|
||||
*/
|
||||
typedef struct AMediaDrmKeyValuePair {
|
||||
const char *mKey;
|
||||
const char *mValue;
|
||||
} AMediaDrmKeyValue;
|
||||
|
||||
/**
|
||||
* A key request/response exchange occurs between the app and a license server
|
||||
* to obtain or release keys used to decrypt encrypted content.
|
||||
* AMediaDrm_getKeyRequest is used to obtain an opaque key request byte array that
|
||||
* is delivered to the license server. The opaque key request byte array is
|
||||
* returned in KeyRequest.data. The recommended URL to deliver the key request to
|
||||
* is returned in KeyRequest.defaultUrl.
|
||||
*
|
||||
* After the app has received the key request response from the server,
|
||||
* it should deliver to the response to the DRM engine plugin using the method
|
||||
* AMediaDrm_provideKeyResponse.
|
||||
*
|
||||
* scope may be a sessionId or a keySetId, depending on the specified keyType.
|
||||
* When the keyType is KEY_TYPE_STREAMING or KEY_TYPE_OFFLINE, scope should be set
|
||||
* to the sessionId the keys will be provided to. When the keyType is
|
||||
* KEY_TYPE_RELEASE, scope should be set to the keySetId of the keys being released.
|
||||
* Releasing keys from a device invalidates them for all sessions.
|
||||
*
|
||||
* init container-specific data, its meaning is interpreted based on the mime type
|
||||
* provided in the mimeType parameter. It could contain, for example, the content
|
||||
* ID, key ID or other data obtained from the content metadata that is required in
|
||||
* generating the key request. init may be null when keyType is KEY_TYPE_RELEASE.
|
||||
*
|
||||
* initSize is the number of bytes of initData
|
||||
*
|
||||
* mimeType identifies the mime type of the content.
|
||||
*
|
||||
* keyType specifes the type of the request. The request may be to acquire keys for
|
||||
* streaming or offline content, or to release previously acquired keys, which are
|
||||
* identified by a keySetId.
|
||||
*
|
||||
* optionalParameters are included in the key request message to allow a client
|
||||
* application to provide additional message parameters to the server.
|
||||
*
|
||||
* numOptionalParameters indicates the number of optional parameters provided
|
||||
* by the caller
|
||||
*
|
||||
* On exit:
|
||||
* 1. The keyRequest pointer will reference the opaque key request data. It
|
||||
* will reside in memory owned by the AMediaDrm object, and will remain
|
||||
* accessible until the next call to AMediaDrm_getKeyRequest or until the
|
||||
* MediaDrm object is released.
|
||||
* 2. keyRequestSize will be set to the size of the request
|
||||
*
|
||||
* returns MEDIADRM_NOT_PROVISIONED_ERROR if reprovisioning is needed, due to a
|
||||
* problem with the device certificate.
|
||||
*/
|
||||
media_status_t AMediaDrm_getKeyRequest(AMediaDrm *, const AMediaDrmScope *scope,
|
||||
const uint8_t *init, size_t initSize, const char *mimeType, AMediaDrmKeyType keyType,
|
||||
const AMediaDrmKeyValue *optionalParameters, size_t numOptionalParameters,
|
||||
const uint8_t **keyRequest, size_t *keyRequestSize);
|
||||
|
||||
/**
|
||||
* A key response is received from the license server by the app, then it is
|
||||
* provided to the DRM engine plugin using provideKeyResponse. When the
|
||||
* response is for an offline key request, a keySetId is returned that can be
|
||||
* used to later restore the keys to a new session with AMediaDrm_restoreKeys.
|
||||
* When the response is for a streaming or release request, a null keySetId is
|
||||
* returned.
|
||||
*
|
||||
* scope may be a sessionId or keySetId depending on the type of the
|
||||
* response. Scope should be set to the sessionId when the response is for either
|
||||
* streaming or offline key requests. Scope should be set to the keySetId when
|
||||
* the response is for a release request.
|
||||
*
|
||||
* response points to the opaque response from the server
|
||||
* responseSize should be set to the size of the response in bytes
|
||||
*/
|
||||
|
||||
media_status_t AMediaDrm_provideKeyResponse(AMediaDrm *, const AMediaDrmScope *scope,
|
||||
const uint8_t *response, size_t responseSize, AMediaDrmKeySetId *keySetId);
|
||||
|
||||
/**
|
||||
* Restore persisted offline keys into a new session. keySetId identifies the
|
||||
* keys to load, obtained from a prior call to AMediaDrm_provideKeyResponse.
|
||||
*
|
||||
* sessionId is the session ID for the DRM session
|
||||
* keySetId identifies the saved key set to restore
|
||||
*/
|
||||
media_status_t AMediaDrm_restoreKeys(AMediaDrm *, const AMediaDrmSessionId *sessionId,
|
||||
const AMediaDrmKeySetId *keySetId);
|
||||
|
||||
/**
|
||||
* Remove the current keys from a session.
|
||||
*
|
||||
* keySetId identifies keys to remove
|
||||
*/
|
||||
media_status_t AMediaDrm_removeKeys(AMediaDrm *, const AMediaDrmSessionId *keySetId);
|
||||
|
||||
/**
|
||||
* Request an informative description of the key status for the session. The status is
|
||||
* in the form of {key, value} pairs. Since DRM license policies vary by vendor,
|
||||
* the specific status field names are determined by each DRM vendor. Refer to your
|
||||
* DRM provider documentation for definitions of the field names for a particular
|
||||
* DRM engine plugin.
|
||||
*
|
||||
* On entry, numPairs should be set by the caller to the maximum number of pairs
|
||||
* that can be returned (the size of the array). On exit, numPairs will be set
|
||||
* to the number of entries written to the array. If the number of {key, value} pairs
|
||||
* to be returned is greater than *numPairs, MEDIADRM_SHORT_BUFFER will be returned
|
||||
* and numPairs will be set to the number of pairs available.
|
||||
*/
|
||||
media_status_t AMediaDrm_queryKeyStatus(AMediaDrm *, const AMediaDrmSessionId *sessionId,
|
||||
AMediaDrmKeyValue *keyValuePairs, size_t *numPairs);
|
||||
|
||||
|
||||
/**
|
||||
* A provision request/response exchange occurs between the app and a provisioning
|
||||
* server to retrieve a device certificate. If provisionining is required, the
|
||||
* EVENT_PROVISION_REQUIRED event will be sent to the event handler.
|
||||
* getProvisionRequest is used to obtain the opaque provision request byte array that
|
||||
* should be delivered to the provisioning server.
|
||||
* On exit:
|
||||
* 1. The provision request data will be referenced by provisionRequest, in
|
||||
* memory owned by the AMediaDrm object. It will remain accessible until the
|
||||
* next call to getProvisionRequest.
|
||||
* 2. provisionRequestSize will be set to the size of the request data.
|
||||
* 3. serverUrl will reference a NULL terminated string containing the URL
|
||||
* the provisioning request should be sent to. It will remain accessible until
|
||||
* the next call to getProvisionRequest.
|
||||
*/
|
||||
media_status_t AMediaDrm_getProvisionRequest(AMediaDrm *, const uint8_t **provisionRequest,
|
||||
size_t *provisionRequestSize, const char **serverUrl);
|
||||
|
||||
|
||||
/**
|
||||
* After a provision response is received by the app, it is provided to the DRM
|
||||
* engine plugin using this method.
|
||||
*
|
||||
* response is the opaque provisioning response byte array to provide to the
|
||||
* DRM engine plugin.
|
||||
* responseSize is the length of the provisioning response in bytes.
|
||||
*
|
||||
* returns MEDIADRM_DEVICE_REVOKED_ERROR if the response indicates that the
|
||||
* server rejected the request
|
||||
*/
|
||||
media_status_t AMediaDrm_provideProvisionResponse(AMediaDrm *,
|
||||
const uint8_t *response, size_t responseSize);
|
||||
|
||||
|
||||
/**
|
||||
* A means of enforcing limits on the number of concurrent streams per subscriber
|
||||
* across devices is provided via SecureStop. This is achieved by securely
|
||||
* monitoring the lifetime of sessions.
|
||||
*
|
||||
* Information from the server related to the current playback session is written
|
||||
* to persistent storage on the device when each MediaCrypto object is created.
|
||||
*
|
||||
* In the normal case, playback will be completed, the session destroyed and the
|
||||
* Secure Stops will be queried. The app queries secure stops and forwards the
|
||||
* secure stop message to the server which verifies the signature and notifies the
|
||||
* server side database that the session destruction has been confirmed. The persisted
|
||||
* record on the client is only removed after positive confirmation that the server
|
||||
* received the message using releaseSecureStops().
|
||||
*
|
||||
* numSecureStops is set by the caller to the maximum number of secure stops to
|
||||
* return. On exit, *numSecureStops will be set to the number actually returned.
|
||||
* If *numSecureStops is too small for the number of secure stops available,
|
||||
* MEDIADRM_SHORT_BUFFER will be returned and *numSecureStops will be set to the
|
||||
* number required.
|
||||
*/
|
||||
media_status_t AMediaDrm_getSecureStops(AMediaDrm *,
|
||||
AMediaDrmSecureStop *secureStops, size_t *numSecureStops);
|
||||
|
||||
/**
|
||||
* Process the SecureStop server response message ssRelease. After authenticating
|
||||
* the message, remove the SecureStops identified in the response.
|
||||
*
|
||||
* ssRelease is the server response indicating which secure stops to release
|
||||
*/
|
||||
media_status_t AMediaDrm_releaseSecureStops(AMediaDrm *,
|
||||
const AMediaDrmSecureStop *ssRelease);
|
||||
|
||||
/**
|
||||
* String property name: identifies the maker of the DRM engine plugin
|
||||
*/
|
||||
const char *PROPERTY_VENDOR = "vendor";
|
||||
|
||||
/**
|
||||
* String property name: identifies the version of the DRM engine plugin
|
||||
*/
|
||||
const char *PROPERTY_VERSION = "version";
|
||||
|
||||
/**
|
||||
* String property name: describes the DRM engine plugin
|
||||
*/
|
||||
const char *PROPERTY_DESCRIPTION = "description";
|
||||
|
||||
/**
|
||||
* String property name: a comma-separated list of cipher and mac algorithms
|
||||
* supported by CryptoSession. The list may be empty if the DRM engine
|
||||
* plugin does not support CryptoSession operations.
|
||||
*/
|
||||
const char *PROPERTY_ALGORITHMS = "algorithms";
|
||||
|
||||
/**
|
||||
* Read a DRM engine plugin String property value, given the property name string.
|
||||
*
|
||||
* propertyName identifies the property to query
|
||||
* On return, propertyValue will be set to point to the property value. The
|
||||
* memory that the value resides in is owned by the NDK MediaDrm API and
|
||||
* will remain valid until the next call to AMediaDrm_getPropertyString.
|
||||
*/
|
||||
media_status_t AMediaDrm_getPropertyString(AMediaDrm *, const char *propertyName,
|
||||
const char **propertyValue);
|
||||
|
||||
/**
|
||||
* Byte array property name: the device unique identifier is established during
|
||||
* device provisioning and provides a means of uniquely identifying each device.
|
||||
*/
|
||||
const char *PROPERTY_DEVICE_UNIQUE_ID = "deviceUniqueId";
|
||||
|
||||
/**
|
||||
* Read a DRM engine plugin byte array property value, given the property name string.
|
||||
* On return, *propertyValue will be set to point to the property value. The
|
||||
* memory that the value resides in is owned by the NDK MediaDrm API and
|
||||
* will remain valid until the next call to AMediaDrm_getPropertyByteArray.
|
||||
*/
|
||||
media_status_t AMediaDrm_getPropertyByteArray(AMediaDrm *, const char *propertyName,
|
||||
AMediaDrmByteArray *propertyValue);
|
||||
|
||||
/**
|
||||
* Set a DRM engine plugin String property value.
|
||||
*/
|
||||
media_status_t AMediaDrm_setPropertyString(AMediaDrm *, const char *propertyName,
|
||||
const char *value);
|
||||
|
||||
/**
|
||||
* Set a DRM engine plugin byte array property value.
|
||||
*/
|
||||
media_status_t AMediaDrm_setPropertyByteArray(AMediaDrm *, const char *propertyName,
|
||||
const uint8_t *value, size_t valueSize);
|
||||
|
||||
/**
|
||||
* In addition to supporting decryption of DASH Common Encrypted Media, the
|
||||
* MediaDrm APIs provide the ability to securely deliver session keys from
|
||||
* an operator's session key server to a client device, based on the factory-installed
|
||||
* root of trust, and then perform encrypt, decrypt, sign and verify operations
|
||||
* with the session key on arbitrary user data.
|
||||
*
|
||||
* Operators create session key servers that receive session key requests and provide
|
||||
* encrypted session keys which can be used for general purpose crypto operations.
|
||||
*
|
||||
* Generic encrypt/decrypt/sign/verify methods are based on the established session
|
||||
* keys. These keys are exchanged using the getKeyRequest/provideKeyResponse methods.
|
||||
*
|
||||
* Applications of this capability include securing various types of purchased or
|
||||
* private content, such as applications, books and other media, photos or media
|
||||
* delivery protocols.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Encrypt the data referenced by input of length dataSize using algorithm specified
|
||||
* by cipherAlgorithm, and write the encrypted result into output. The caller must
|
||||
* ensure that the output buffer is large enough to accept dataSize bytes. The key
|
||||
* to use is identified by the 16 byte keyId. The key must have been loaded into
|
||||
* the session using provideKeyResponse.
|
||||
*/
|
||||
media_status_t AMediaDrm_encrypt(AMediaDrm *, const AMediaDrmSessionId *sessionId,
|
||||
const char *cipherAlgorithm, uint8_t *keyId, uint8_t *iv,
|
||||
const uint8_t *input, uint8_t *output, size_t dataSize);
|
||||
|
||||
/*
|
||||
* Decrypt the data referenced by input of length dataSize using algorithm specified
|
||||
* by cipherAlgorithm, and write the decrypted result into output. The caller must
|
||||
* ensure that the output buffer is large enough to accept dataSize bytes. The key
|
||||
* to use is identified by the 16 byte keyId. The key must have been loaded into
|
||||
* the session using provideKeyResponse.
|
||||
*/
|
||||
media_status_t AMediaDrm_decrypt(AMediaDrm *, const AMediaDrmSessionId *sessionId,
|
||||
const char *cipherAlgorithm, uint8_t *keyId, uint8_t *iv,
|
||||
const uint8_t *input, uint8_t *output, size_t dataSize);
|
||||
|
||||
/*
|
||||
* Generate a signature using the specified macAlgorithm over the message data
|
||||
* referenced by message of size messageSize and store the signature in the
|
||||
* buffer referenced signature of max size *signatureSize. If the buffer is not
|
||||
* large enough to hold the signature, MEDIADRM_SHORT_BUFFER is returned and
|
||||
* *signatureSize is set to the buffer size required. The key to use is identified
|
||||
* by the 16 byte keyId. The key must have been loaded into the session using
|
||||
* provideKeyResponse.
|
||||
*/
|
||||
media_status_t AMediaDrm_sign(AMediaDrm *, const AMediaDrmSessionId *sessionId,
|
||||
const char *macAlgorithm, uint8_t *keyId, uint8_t *message, size_t messageSize,
|
||||
uint8_t *signature, size_t *signatureSize);
|
||||
|
||||
/*
|
||||
* Perform a signature verification using the specified macAlgorithm over the message
|
||||
* data referenced by the message parameter of size messageSize. Returns MEDIADRM_OK
|
||||
* if the signature matches, otherwise MEDAIDRM_VERIFY_FAILED is returned. The key to
|
||||
* use is identified by the 16 byte keyId. The key must have been loaded into the
|
||||
* session using provideKeyResponse.
|
||||
*/
|
||||
media_status_t AMediaDrm_verify(AMediaDrm *, const AMediaDrmSessionId *sessionId,
|
||||
const char *macAlgorithm, uint8_t *keyId, const uint8_t *message, size_t messageSize,
|
||||
const uint8_t *signature, size_t signatureSize);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif //_NDK_MEDIA_DRM_H
|
||||
@@ -1,63 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This file defines an NDK API.
|
||||
* Do not remove methods.
|
||||
* Do not change method signatures.
|
||||
* Do not change the value of constants.
|
||||
* Do not change the size of any of the classes defined in here.
|
||||
* Do not reference types that are not part of the NDK.
|
||||
* Do not #include files that aren't part of the NDK.
|
||||
*/
|
||||
|
||||
#ifndef _NDK_MEDIA_ERROR_H
|
||||
#define _NDK_MEDIA_ERROR_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
AMEDIA_OK = 0,
|
||||
|
||||
AMEDIA_ERROR_BASE = -10000,
|
||||
AMEDIA_ERROR_UNKNOWN = AMEDIA_ERROR_BASE,
|
||||
AMEDIA_ERROR_MALFORMED = AMEDIA_ERROR_BASE - 1,
|
||||
AMEDIA_ERROR_UNSUPPORTED = AMEDIA_ERROR_BASE - 2,
|
||||
AMEDIA_ERROR_INVALID_OBJECT = AMEDIA_ERROR_BASE - 3,
|
||||
AMEDIA_ERROR_INVALID_PARAMETER = AMEDIA_ERROR_BASE - 4,
|
||||
|
||||
AMEDIA_DRM_ERROR_BASE = -20000,
|
||||
AMEDIA_DRM_NOT_PROVISIONED = AMEDIA_DRM_ERROR_BASE - 1,
|
||||
AMEDIA_DRM_RESOURCE_BUSY = AMEDIA_DRM_ERROR_BASE - 2,
|
||||
AMEDIA_DRM_DEVICE_REVOKED = AMEDIA_DRM_ERROR_BASE - 3,
|
||||
AMEDIA_DRM_SHORT_BUFFER = AMEDIA_DRM_ERROR_BASE - 4,
|
||||
AMEDIA_DRM_SESSION_NOT_OPENED = AMEDIA_DRM_ERROR_BASE - 5,
|
||||
AMEDIA_DRM_TAMPER_DETECTED = AMEDIA_DRM_ERROR_BASE - 6,
|
||||
AMEDIA_DRM_VERIFY_FAILED = AMEDIA_DRM_ERROR_BASE - 7,
|
||||
AMEDIA_DRM_NEED_KEY = AMEDIA_DRM_ERROR_BASE - 8,
|
||||
AMEDIA_DRM_LICENSE_EXPIRED = AMEDIA_DRM_ERROR_BASE - 9,
|
||||
|
||||
} media_status_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // _NDK_MEDIA_ERROR_H
|
||||
@@ -1,163 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This file defines an NDK API.
|
||||
* Do not remove methods.
|
||||
* Do not change method signatures.
|
||||
* Do not change the value of constants.
|
||||
* Do not change the size of any of the classes defined in here.
|
||||
* Do not reference types that are not part of the NDK.
|
||||
* Do not #include files that aren't part of the NDK.
|
||||
*/
|
||||
|
||||
#ifndef _NDK_MEDIA_EXTRACTOR_H
|
||||
#define _NDK_MEDIA_EXTRACTOR_H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "NdkMediaCodec.h"
|
||||
#include "NdkMediaFormat.h"
|
||||
#include "NdkMediaCrypto.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct AMediaExtractor;
|
||||
typedef struct AMediaExtractor AMediaExtractor;
|
||||
|
||||
|
||||
/**
|
||||
* Create new media extractor
|
||||
*/
|
||||
AMediaExtractor* AMediaExtractor_new();
|
||||
|
||||
/**
|
||||
* Delete a previously created media extractor
|
||||
*/
|
||||
media_status_t AMediaExtractor_delete(AMediaExtractor*);
|
||||
|
||||
/**
|
||||
* Set the file descriptor from which the extractor will read.
|
||||
*/
|
||||
media_status_t AMediaExtractor_setDataSourceFd(AMediaExtractor*, int fd, off64_t offset, off64_t length);
|
||||
|
||||
/**
|
||||
* Set the URI from which the extractor will read.
|
||||
*/
|
||||
media_status_t AMediaExtractor_setDataSource(AMediaExtractor*, const char *location); // TODO support headers
|
||||
|
||||
/**
|
||||
* Return the number of tracks in the previously specified media file
|
||||
*/
|
||||
size_t AMediaExtractor_getTrackCount(AMediaExtractor*);
|
||||
|
||||
/**
|
||||
* Return the format of the specified track. The caller must free the returned format
|
||||
*/
|
||||
AMediaFormat* AMediaExtractor_getTrackFormat(AMediaExtractor*, size_t idx);
|
||||
|
||||
/**
|
||||
* Select the specified track. Subsequent calls to readSampleData, getSampleTrackIndex and
|
||||
* getSampleTime only retrieve information for the subset of tracks selected.
|
||||
* Selecting the same track multiple times has no effect, the track is
|
||||
* only selected once.
|
||||
*/
|
||||
media_status_t AMediaExtractor_selectTrack(AMediaExtractor*, size_t idx);
|
||||
|
||||
/**
|
||||
* Unselect the specified track. Subsequent calls to readSampleData, getSampleTrackIndex and
|
||||
* getSampleTime only retrieve information for the subset of tracks selected..
|
||||
*/
|
||||
media_status_t AMediaExtractor_unselectTrack(AMediaExtractor*, size_t idx);
|
||||
|
||||
/**
|
||||
* Read the current sample.
|
||||
*/
|
||||
ssize_t AMediaExtractor_readSampleData(AMediaExtractor*, uint8_t *buffer, size_t capacity);
|
||||
|
||||
/**
|
||||
* Read the current sample's flags.
|
||||
*/
|
||||
uint32_t AMediaExtractor_getSampleFlags(AMediaExtractor*); // see definitions below
|
||||
|
||||
/**
|
||||
* Returns the track index the current sample originates from (or -1
|
||||
* if no more samples are available)
|
||||
*/
|
||||
int AMediaExtractor_getSampleTrackIndex(AMediaExtractor*);
|
||||
|
||||
/**
|
||||
* Returns the current sample's presentation time in microseconds.
|
||||
* or -1 if no more samples are available.
|
||||
*/
|
||||
int64_t AMediaExtractor_getSampleTime(AMediaExtractor*);
|
||||
|
||||
/**
|
||||
* Advance to the next sample. Returns false if no more sample data
|
||||
* is available (end of stream).
|
||||
*/
|
||||
bool AMediaExtractor_advance(AMediaExtractor*);
|
||||
|
||||
typedef enum {
|
||||
AMEDIAEXTRACTOR_SEEK_PREVIOUS_SYNC,
|
||||
AMEDIAEXTRACTOR_SEEK_NEXT_SYNC,
|
||||
AMEDIAEXTRACTOR_SEEK_CLOSEST_SYNC
|
||||
} SeekMode;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
media_status_t AMediaExtractor_seekTo(AMediaExtractor*, int64_t seekPosUs, SeekMode mode);
|
||||
|
||||
/**
|
||||
* mapping of crypto scheme uuid to the scheme specific data for that scheme
|
||||
*/
|
||||
typedef struct PsshEntry {
|
||||
AMediaUUID uuid;
|
||||
size_t datalen;
|
||||
void *data;
|
||||
} PsshEntry;
|
||||
|
||||
/**
|
||||
* list of crypto schemes and their data
|
||||
*/
|
||||
typedef struct PsshInfo {
|
||||
size_t numentries;
|
||||
PsshEntry entries[0];
|
||||
} PsshInfo;
|
||||
|
||||
/**
|
||||
* Get the PSSH info if present.
|
||||
*/
|
||||
PsshInfo* AMediaExtractor_getPsshInfo(AMediaExtractor*);
|
||||
|
||||
|
||||
AMediaCodecCryptoInfo *AMediaExtractor_getSampleCryptoInfo(AMediaExtractor *);
|
||||
|
||||
|
||||
enum {
|
||||
AMEDIAEXTRACTOR_SAMPLE_FLAG_SYNC = 1,
|
||||
AMEDIAEXTRACTOR_SAMPLE_FLAG_ENCRYPTED = 2,
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // _NDK_MEDIA_EXTRACTOR_H
|
||||
@@ -1,111 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file defines an NDK API.
|
||||
* Do not remove methods.
|
||||
* Do not change method signatures.
|
||||
* Do not change the value of constants.
|
||||
* Do not change the size of any of the classes defined in here.
|
||||
* Do not reference types that are not part of the NDK.
|
||||
* Do not #include files that aren't part of the NDK.
|
||||
*/
|
||||
|
||||
#ifndef _NDK_MEDIA_FORMAT_H
|
||||
#define _NDK_MEDIA_FORMAT_H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "NdkMediaError.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct AMediaFormat;
|
||||
typedef struct AMediaFormat AMediaFormat;
|
||||
|
||||
AMediaFormat *AMediaFormat_new();
|
||||
media_status_t AMediaFormat_delete(AMediaFormat*);
|
||||
|
||||
/**
|
||||
* Human readable representation of the format. The returned string is owned by the format,
|
||||
* and remains valid until the next call to toString, or until the format is deleted.
|
||||
*/
|
||||
const char* AMediaFormat_toString(AMediaFormat*);
|
||||
|
||||
bool AMediaFormat_getInt32(AMediaFormat*, const char *name, int32_t *out);
|
||||
bool AMediaFormat_getInt64(AMediaFormat*, const char *name, int64_t *out);
|
||||
bool AMediaFormat_getFloat(AMediaFormat*, const char *name, float *out);
|
||||
/**
|
||||
* The returned data is owned by the format and remains valid as long as the named entry
|
||||
* is part of the format.
|
||||
*/
|
||||
bool AMediaFormat_getBuffer(AMediaFormat*, const char *name, void** data, size_t *size);
|
||||
/**
|
||||
* The returned string is owned by the format, and remains valid until the next call to getString,
|
||||
* or until the format is deleted.
|
||||
*/
|
||||
bool AMediaFormat_getString(AMediaFormat*, const char *name, const char **out);
|
||||
|
||||
|
||||
void AMediaFormat_setInt32(AMediaFormat*, const char* name, int32_t value);
|
||||
void AMediaFormat_setInt64(AMediaFormat*, const char* name, int64_t value);
|
||||
void AMediaFormat_setFloat(AMediaFormat*, const char* name, float value);
|
||||
/**
|
||||
* The provided string is copied into the format.
|
||||
*/
|
||||
void AMediaFormat_setString(AMediaFormat*, const char* name, const char* value);
|
||||
/**
|
||||
* The provided data is copied into the format.
|
||||
*/
|
||||
void AMediaFormat_setBuffer(AMediaFormat*, const char* name, void* data, size_t size);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* XXX should these be ints/enums that we look up in a table as needed?
|
||||
*/
|
||||
extern const char* AMEDIAFORMAT_KEY_AAC_PROFILE;
|
||||
extern const char* AMEDIAFORMAT_KEY_BIT_RATE;
|
||||
extern const char* AMEDIAFORMAT_KEY_CHANNEL_COUNT;
|
||||
extern const char* AMEDIAFORMAT_KEY_CHANNEL_MASK;
|
||||
extern const char* AMEDIAFORMAT_KEY_COLOR_FORMAT;
|
||||
extern const char* AMEDIAFORMAT_KEY_DURATION;
|
||||
extern const char* AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL;
|
||||
extern const char* AMEDIAFORMAT_KEY_FRAME_RATE;
|
||||
extern const char* AMEDIAFORMAT_KEY_HEIGHT;
|
||||
extern const char* AMEDIAFORMAT_KEY_IS_ADTS;
|
||||
extern const char* AMEDIAFORMAT_KEY_IS_AUTOSELECT;
|
||||
extern const char* AMEDIAFORMAT_KEY_IS_DEFAULT;
|
||||
extern const char* AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE;
|
||||
extern const char* AMEDIAFORMAT_KEY_I_FRAME_INTERVAL;
|
||||
extern const char* AMEDIAFORMAT_KEY_LANGUAGE;
|
||||
extern const char* AMEDIAFORMAT_KEY_MAX_HEIGHT;
|
||||
extern const char* AMEDIAFORMAT_KEY_MAX_INPUT_SIZE;
|
||||
extern const char* AMEDIAFORMAT_KEY_MAX_WIDTH;
|
||||
extern const char* AMEDIAFORMAT_KEY_MIME;
|
||||
extern const char* AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP;
|
||||
extern const char* AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER;
|
||||
extern const char* AMEDIAFORMAT_KEY_SAMPLE_RATE;
|
||||
extern const char* AMEDIAFORMAT_KEY_WIDTH;
|
||||
extern const char* AMEDIAFORMAT_KEY_STRIDE;
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // _NDK_MEDIA_FORMAT_H
|
||||
@@ -1,119 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* This file defines an NDK API.
|
||||
* Do not remove methods.
|
||||
* Do not change method signatures.
|
||||
* Do not change the value of constants.
|
||||
* Do not change the size of any of the classes defined in here.
|
||||
* Do not reference types that are not part of the NDK.
|
||||
* Do not #include files that aren't part of the NDK.
|
||||
*/
|
||||
|
||||
#ifndef _NDK_MEDIA_MUXER_H
|
||||
#define _NDK_MEDIA_MUXER_H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "NdkMediaCodec.h"
|
||||
#include "NdkMediaError.h"
|
||||
#include "NdkMediaFormat.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct AMediaMuxer;
|
||||
typedef struct AMediaMuxer AMediaMuxer;
|
||||
|
||||
typedef enum {
|
||||
AMEDIAMUXER_OUTPUT_FORMAT_MPEG_4 = 0,
|
||||
AMEDIAMUXER_OUTPUT_FORMAT_WEBM = 1,
|
||||
} OutputFormat;
|
||||
|
||||
/**
|
||||
* Create new media muxer
|
||||
*/
|
||||
AMediaMuxer* AMediaMuxer_new(int fd, OutputFormat format);
|
||||
|
||||
/**
|
||||
* Delete a previously created media muxer
|
||||
*/
|
||||
media_status_t AMediaMuxer_delete(AMediaMuxer*);
|
||||
|
||||
/**
|
||||
* Set and store the geodata (latitude and longitude) in the output file.
|
||||
* This method should be called before AMediaMuxer_start. The geodata is stored
|
||||
* in udta box if the output format is AMEDIAMUXER_OUTPUT_FORMAT_MPEG_4, and is
|
||||
* ignored for other output formats.
|
||||
* The geodata is stored according to ISO-6709 standard.
|
||||
*
|
||||
* Both values are specified in degrees.
|
||||
* Latitude must be in the range [-90, 90].
|
||||
* Longitude must be in the range [-180, 180].
|
||||
*/
|
||||
media_status_t AMediaMuxer_setLocation(AMediaMuxer*, float latitude, float longitude);
|
||||
|
||||
/**
|
||||
* Sets the orientation hint for output video playback.
|
||||
* This method should be called before AMediaMuxer_start. Calling this
|
||||
* method will not rotate the video frame when muxer is generating the file,
|
||||
* but add a composition matrix containing the rotation angle in the output
|
||||
* video if the output format is AMEDIAMUXER_OUTPUT_FORMAT_MPEG_4, so that a
|
||||
* video player can choose the proper orientation for playback.
|
||||
* Note that some video players may choose to ignore the composition matrix
|
||||
* during playback.
|
||||
* The angle is specified in degrees, clockwise.
|
||||
* The supported angles are 0, 90, 180, and 270 degrees.
|
||||
*/
|
||||
media_status_t AMediaMuxer_setOrientationHint(AMediaMuxer*, int degrees);
|
||||
|
||||
/**
|
||||
* Adds a track with the specified format.
|
||||
* Returns the index of the new track or a negative value in case of failure,
|
||||
* which can be interpreted as a media_status_t.
|
||||
*/
|
||||
ssize_t AMediaMuxer_addTrack(AMediaMuxer*, const AMediaFormat* format);
|
||||
|
||||
/**
|
||||
* Start the muxer. Should be called after AMediaMuxer_addTrack and
|
||||
* before AMediaMuxer_writeSampleData.
|
||||
*/
|
||||
media_status_t AMediaMuxer_start(AMediaMuxer*);
|
||||
|
||||
/**
|
||||
* Stops the muxer.
|
||||
* Once the muxer stops, it can not be restarted.
|
||||
*/
|
||||
media_status_t AMediaMuxer_stop(AMediaMuxer*);
|
||||
|
||||
/**
|
||||
* Writes an encoded sample into the muxer.
|
||||
* The application needs to make sure that the samples are written into
|
||||
* the right tracks. Also, it needs to make sure the samples for each track
|
||||
* are written in chronological order (e.g. in the order they are provided
|
||||
* by the encoder.)
|
||||
*/
|
||||
media_status_t AMediaMuxer_writeSampleData(AMediaMuxer *muxer,
|
||||
size_t trackIdx, const uint8_t *data, const AMediaCodecBufferInfo *info);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // _NDK_MEDIA_MUXER_H
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.example.nativecodec">
|
||||
|
||||
<uses-feature android:glEsVersion="0x00020000" />
|
||||
|
||||
<application android:icon="@drawable/icon" android:label="@string/app_name">
|
||||
<activity android:name=".NativeCodec"
|
||||
android:label="@string/app_name">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
|
||||
<uses-sdk android:minSdkVersion="19" />
|
||||
|
||||
<!-- INTERNET is needed to use a URI-based media player, depending on the URI -->
|
||||
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
|
||||
|
||||
</manifest>
|
||||
@@ -1,2 +0,0 @@
|
||||
This sample app requires a video file to be placed in /sdcard/testfile.mp4
|
||||
For demonstration purposes we have supplied such a file.
|
||||
@@ -1,4 +0,0 @@
|
||||
# Indicates whether an apk should be generated for each density.
|
||||
split.density=false
|
||||
# Project target.
|
||||
target=android-20
|
||||
@@ -1,30 +0,0 @@
|
||||
# Copyright (C) 2014 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := native-codec-jni
|
||||
LOCAL_SRC_FILES := native-codec-jni.cpp looper.cpp
|
||||
# for native multimedia
|
||||
LOCAL_LDLIBS += -lOpenMAXAL -lmediandk
|
||||
# for logging
|
||||
LOCAL_LDLIBS += -llog
|
||||
# for native windows
|
||||
LOCAL_LDLIBS += -landroid
|
||||
|
||||
LOCAL_CFLAGS += -UNDEBUG
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
@@ -1,2 +0,0 @@
|
||||
APP_PLATFORM := android-20
|
||||
APP_ABI := all
|
||||
@@ -1,152 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "looper.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <jni.h>
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <semaphore.h>
|
||||
|
||||
// for __android_log_print(ANDROID_LOG_INFO, "YourApp", "formatted message");
|
||||
#include <android/log.h>
|
||||
#define TAG "NativeCodec-looper"
|
||||
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
|
||||
|
||||
|
||||
struct loopermessage;
|
||||
typedef struct loopermessage loopermessage;
|
||||
|
||||
struct loopermessage {
|
||||
int what;
|
||||
void *obj;
|
||||
loopermessage *next;
|
||||
bool quit;
|
||||
};
|
||||
|
||||
|
||||
|
||||
void* looper::trampoline(void* p) {
|
||||
((looper*)p)->loop();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
looper::looper() {
|
||||
sem_init(&headdataavailable, 0, 0);
|
||||
sem_init(&headwriteprotect, 0, 1);
|
||||
pthread_attr_t attr;
|
||||
pthread_attr_init(&attr);
|
||||
|
||||
pthread_create(&worker, &attr, trampoline, this);
|
||||
running = true;
|
||||
}
|
||||
|
||||
|
||||
looper::~looper() {
|
||||
if (running) {
|
||||
LOGV("Looper deleted while still running. Some messages will not be processed");
|
||||
quit();
|
||||
}
|
||||
}
|
||||
|
||||
void looper::post(int what, void *data, bool flush) {
|
||||
loopermessage *msg = new loopermessage();
|
||||
msg->what = what;
|
||||
msg->obj = data;
|
||||
msg->next = NULL;
|
||||
msg->quit = false;
|
||||
addmsg(msg, flush);
|
||||
}
|
||||
|
||||
void looper::addmsg(loopermessage *msg, bool flush) {
|
||||
sem_wait(&headwriteprotect);
|
||||
loopermessage *h = head;
|
||||
|
||||
if (flush) {
|
||||
while(h) {
|
||||
loopermessage *next = h->next;
|
||||
delete h;
|
||||
h = next;
|
||||
}
|
||||
h = NULL;
|
||||
}
|
||||
if (h) {
|
||||
while (h->next) {
|
||||
h = h->next;
|
||||
}
|
||||
h->next = msg;
|
||||
} else {
|
||||
head = msg;
|
||||
}
|
||||
LOGV("post msg %d", msg->what);
|
||||
sem_post(&headwriteprotect);
|
||||
sem_post(&headdataavailable);
|
||||
}
|
||||
|
||||
void looper::loop() {
|
||||
while(true) {
|
||||
// wait for available message
|
||||
sem_wait(&headdataavailable);
|
||||
|
||||
// get next available message
|
||||
sem_wait(&headwriteprotect);
|
||||
loopermessage *msg = head;
|
||||
if (msg == NULL) {
|
||||
LOGV("no msg");
|
||||
sem_post(&headwriteprotect);
|
||||
continue;
|
||||
}
|
||||
head = msg->next;
|
||||
sem_post(&headwriteprotect);
|
||||
|
||||
if (msg->quit) {
|
||||
LOGV("quitting");
|
||||
delete msg;
|
||||
return;
|
||||
}
|
||||
LOGV("processing msg %d", msg->what);
|
||||
handle(msg->what, msg->obj);
|
||||
delete msg;
|
||||
}
|
||||
}
|
||||
|
||||
void looper::quit() {
|
||||
LOGV("quit");
|
||||
loopermessage *msg = new loopermessage();
|
||||
msg->what = 0;
|
||||
msg->obj = NULL;
|
||||
msg->next = NULL;
|
||||
msg->quit = true;
|
||||
addmsg(msg, false);
|
||||
void *retval;
|
||||
pthread_join(worker, &retval);
|
||||
sem_destroy(&headdataavailable);
|
||||
sem_destroy(&headwriteprotect);
|
||||
running = false;
|
||||
}
|
||||
|
||||
void looper::handle(int what, void* obj) {
|
||||
LOGV("dropping msg %d %p", what, obj);
|
||||
}
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <pthread.h>
|
||||
#include <semaphore.h>
|
||||
|
||||
struct loopermessage;
|
||||
|
||||
class looper {
|
||||
public:
|
||||
looper();
|
||||
~looper();
|
||||
|
||||
void post(int what, void *data, bool flush = false);
|
||||
void quit();
|
||||
|
||||
virtual void handle(int what, void *data);
|
||||
|
||||
private:
|
||||
void addmsg(loopermessage *msg, bool flush);
|
||||
static void* trampoline(void* p);
|
||||
void loop();
|
||||
loopermessage *head;
|
||||
pthread_t worker;
|
||||
sem_t headwriteprotect;
|
||||
sem_t headdataavailable;
|
||||
bool running;
|
||||
};
|
||||
@@ -1,328 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/* This is a JNI example where we use native methods to play video
|
||||
* using the native AMedia* APIs.
|
||||
* See the corresponding Java source file located at:
|
||||
*
|
||||
* src/com/example/nativecodec/NativeMedia.java
|
||||
*
|
||||
* In this example we use assert() for "impossible" error conditions,
|
||||
* and explicit handling and recovery for more likely error conditions.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <jni.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "looper.h"
|
||||
#include "media/NdkMediaCodec.h"
|
||||
#include "media/NdkMediaExtractor.h"
|
||||
|
||||
// for __android_log_print(ANDROID_LOG_INFO, "YourApp", "formatted message");
|
||||
#include <android/log.h>
|
||||
#define TAG "NativeCodec"
|
||||
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
|
||||
|
||||
// for native window JNI
|
||||
#include <android/native_window_jni.h>
|
||||
|
||||
typedef struct {
|
||||
int fd;
|
||||
ANativeWindow* window;
|
||||
AMediaExtractor* ex;
|
||||
AMediaCodec *codec;
|
||||
int64_t renderstart;
|
||||
bool sawInputEOS;
|
||||
bool sawOutputEOS;
|
||||
bool isPlaying;
|
||||
bool renderonce;
|
||||
} workerdata;
|
||||
|
||||
workerdata data = {-1, NULL, NULL, NULL, 0, false, false, false, false};
|
||||
|
||||
enum {
|
||||
kMsgCodecBuffer,
|
||||
kMsgPause,
|
||||
kMsgResume,
|
||||
kMsgPauseAck,
|
||||
kMsgDecodeDone,
|
||||
kMsgSeek,
|
||||
};
|
||||
|
||||
|
||||
|
||||
class mylooper: public looper {
|
||||
virtual void handle(int what, void* obj);
|
||||
};
|
||||
|
||||
static mylooper *mlooper = NULL;
|
||||
|
||||
int64_t systemnanotime() {
|
||||
timespec now;
|
||||
clock_gettime(CLOCK_MONOTONIC, &now);
|
||||
return now.tv_sec * 1000000000LL + now.tv_nsec;
|
||||
}
|
||||
|
||||
void doCodecWork(workerdata *d) {
|
||||
|
||||
ssize_t bufidx = -1;
|
||||
if (!d->sawInputEOS) {
|
||||
bufidx = AMediaCodec_dequeueInputBuffer(d->codec, 2000);
|
||||
LOGV("input buffer %zd", bufidx);
|
||||
if (bufidx >= 0) {
|
||||
size_t bufsize;
|
||||
uint8_t *buf = AMediaCodec_getInputBuffer(d->codec, bufidx, &bufsize);
|
||||
ssize_t sampleSize = AMediaExtractor_readSampleData(d->ex, buf, bufsize);
|
||||
if (sampleSize < 0) {
|
||||
sampleSize = 0;
|
||||
d->sawInputEOS = true;
|
||||
LOGV("EOS");
|
||||
}
|
||||
int64_t presentationTimeUs = AMediaExtractor_getSampleTime(d->ex);
|
||||
|
||||
AMediaCodec_queueInputBuffer(d->codec, bufidx, 0, sampleSize, presentationTimeUs,
|
||||
d->sawInputEOS ? AMEDIACODEC_BUFFER_FLAG_END_OF_STREAM : 0);
|
||||
AMediaExtractor_advance(d->ex);
|
||||
}
|
||||
}
|
||||
|
||||
if (!d->sawOutputEOS) {
|
||||
AMediaCodecBufferInfo info;
|
||||
ssize_t status = AMediaCodec_dequeueOutputBuffer(d->codec, &info, 0);
|
||||
if (status >= 0) {
|
||||
if (info.flags & AMEDIACODEC_BUFFER_FLAG_END_OF_STREAM) {
|
||||
LOGV("output EOS");
|
||||
d->sawOutputEOS = true;
|
||||
}
|
||||
int64_t presentationNano = info.presentationTimeUs * 1000;
|
||||
if (d->renderstart < 0) {
|
||||
d->renderstart = systemnanotime() - presentationNano;
|
||||
}
|
||||
int64_t delay = (d->renderstart + presentationNano) - systemnanotime();
|
||||
if (delay > 0) {
|
||||
usleep(delay / 1000);
|
||||
}
|
||||
AMediaCodec_releaseOutputBuffer(d->codec, status, info.size != 0);
|
||||
if (d->renderonce) {
|
||||
d->renderonce = false;
|
||||
return;
|
||||
}
|
||||
} else if (status == AMEDIACODEC_INFO_OUTPUT_BUFFERS_CHANGED) {
|
||||
LOGV("output buffers changed");
|
||||
} else if (status == AMEDIACODEC_INFO_OUTPUT_FORMAT_CHANGED) {
|
||||
AMediaFormat *format = NULL;
|
||||
format = AMediaCodec_getOutputFormat(d->codec);
|
||||
LOGV("format changed to: %s", AMediaFormat_toString(format));
|
||||
AMediaFormat_delete(format);
|
||||
} else if (status == AMEDIACODEC_INFO_TRY_AGAIN_LATER) {
|
||||
LOGV("no output buffer right now");
|
||||
} else {
|
||||
LOGV("unexpected info code: %zd", status);
|
||||
}
|
||||
}
|
||||
|
||||
if (!d->sawInputEOS || !d->sawOutputEOS) {
|
||||
mlooper->post(kMsgCodecBuffer, d);
|
||||
}
|
||||
}
|
||||
|
||||
void mylooper::handle(int what, void* obj) {
|
||||
switch (what) {
|
||||
case kMsgCodecBuffer:
|
||||
doCodecWork((workerdata*)obj);
|
||||
break;
|
||||
|
||||
case kMsgDecodeDone:
|
||||
{
|
||||
workerdata *d = (workerdata*)obj;
|
||||
AMediaCodec_stop(d->codec);
|
||||
AMediaCodec_delete(d->codec);
|
||||
AMediaExtractor_delete(d->ex);
|
||||
d->sawInputEOS = true;
|
||||
d->sawOutputEOS = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case kMsgSeek:
|
||||
{
|
||||
workerdata *d = (workerdata*)obj;
|
||||
AMediaExtractor_seekTo(d->ex, 0, AMEDIAEXTRACTOR_SEEK_NEXT_SYNC);
|
||||
AMediaCodec_flush(d->codec);
|
||||
d->renderstart = -1;
|
||||
d->sawInputEOS = false;
|
||||
d->sawOutputEOS = false;
|
||||
if (!d->isPlaying) {
|
||||
d->renderonce = true;
|
||||
post(kMsgCodecBuffer, d);
|
||||
}
|
||||
LOGV("seeked");
|
||||
}
|
||||
break;
|
||||
|
||||
case kMsgPause:
|
||||
{
|
||||
workerdata *d = (workerdata*)obj;
|
||||
if (d->isPlaying) {
|
||||
// flush all outstanding codecbuffer messages with a no-op message
|
||||
d->isPlaying = false;
|
||||
post(kMsgPauseAck, NULL, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case kMsgResume:
|
||||
{
|
||||
workerdata *d = (workerdata*)obj;
|
||||
if (!d->isPlaying) {
|
||||
d->renderstart = -1;
|
||||
d->isPlaying = true;
|
||||
post(kMsgCodecBuffer, d);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
extern "C" {
|
||||
|
||||
jboolean Java_com_example_nativecodec_NativeCodec_createStreamingMediaPlayer(JNIEnv* env,
|
||||
jclass clazz, jstring filename)
|
||||
{
|
||||
LOGV("@@@ create");
|
||||
|
||||
// convert Java string to UTF-8
|
||||
const char *utf8 = env->GetStringUTFChars(filename, NULL);
|
||||
LOGV("opening %s", utf8);
|
||||
int fd = open(utf8, O_RDONLY);
|
||||
env->ReleaseStringUTFChars(filename, utf8);
|
||||
if (fd < 0) {
|
||||
LOGV("failed: %d (%s)", fd, strerror(errno));
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
data.fd = fd;
|
||||
|
||||
workerdata *d = &data;
|
||||
|
||||
AMediaExtractor *ex = AMediaExtractor_new();
|
||||
media_status_t err = AMediaExtractor_setDataSourceFd(ex, d->fd, 0 , LONG_MAX);
|
||||
close(d->fd);
|
||||
if (err != AMEDIA_OK) {
|
||||
LOGV("setDataSource error: %d", err);
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
int numtracks = AMediaExtractor_getTrackCount(ex);
|
||||
|
||||
AMediaCodec *codec = NULL;
|
||||
|
||||
LOGV("input has %d tracks", numtracks);
|
||||
for (int i = 0; i < numtracks; i++) {
|
||||
AMediaFormat *format = AMediaExtractor_getTrackFormat(ex, i);
|
||||
const char *s = AMediaFormat_toString(format);
|
||||
LOGV("track %d format: %s", i, s);
|
||||
const char *mime;
|
||||
if (!AMediaFormat_getString(format, AMEDIAFORMAT_KEY_MIME, &mime)) {
|
||||
LOGV("no mime type");
|
||||
return JNI_FALSE;
|
||||
} else if (!strncmp(mime, "video/", 6)) {
|
||||
// Omitting most error handling for clarity.
|
||||
// Production code should check for errors.
|
||||
AMediaExtractor_selectTrack(ex, i);
|
||||
codec = AMediaCodec_createDecoderByType(mime);
|
||||
AMediaCodec_configure(codec, format, d->window, NULL, 0);
|
||||
d->ex = ex;
|
||||
d->codec = codec;
|
||||
d->renderstart = -1;
|
||||
d->sawInputEOS = false;
|
||||
d->sawOutputEOS = false;
|
||||
d->isPlaying = false;
|
||||
d->renderonce = true;
|
||||
AMediaCodec_start(codec);
|
||||
}
|
||||
AMediaFormat_delete(format);
|
||||
}
|
||||
|
||||
mlooper = new mylooper();
|
||||
mlooper->post(kMsgCodecBuffer, d);
|
||||
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
// set the playing state for the streaming media player
|
||||
void Java_com_example_nativecodec_NativeCodec_setPlayingStreamingMediaPlayer(JNIEnv* env,
|
||||
jclass clazz, jboolean isPlaying)
|
||||
{
|
||||
LOGV("@@@ playpause: %d", isPlaying);
|
||||
if (mlooper) {
|
||||
if (isPlaying) {
|
||||
mlooper->post(kMsgResume, &data);
|
||||
} else {
|
||||
mlooper->post(kMsgPause, &data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// shut down the native media system
|
||||
void Java_com_example_nativecodec_NativeCodec_shutdown(JNIEnv* env, jclass clazz)
|
||||
{
|
||||
LOGV("@@@ shutdown");
|
||||
if (mlooper) {
|
||||
mlooper->post(kMsgDecodeDone, &data, true /* flush */);
|
||||
mlooper->quit();
|
||||
delete mlooper;
|
||||
mlooper = NULL;
|
||||
}
|
||||
if (data.window) {
|
||||
ANativeWindow_release(data.window);
|
||||
data.window = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// set the surface
|
||||
void Java_com_example_nativecodec_NativeCodec_setSurface(JNIEnv *env, jclass clazz, jobject surface)
|
||||
{
|
||||
// obtain a native window from a Java surface
|
||||
if (data.window) {
|
||||
ANativeWindow_release(data.window);
|
||||
data.window = NULL;
|
||||
}
|
||||
data.window = ANativeWindow_fromSurface(env, surface);
|
||||
LOGV("@@@ setsurface %p", data.window);
|
||||
}
|
||||
|
||||
|
||||
// rewind the streaming media player
|
||||
void Java_com_example_nativecodec_NativeCodec_rewindStreamingMediaPlayer(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
LOGV("@@@ rewind");
|
||||
mlooper->post(kMsgSeek, &data);
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.5 KiB |
@@ -1,84 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
>
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dip"
|
||||
>
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/source_select"
|
||||
/>
|
||||
<Spinner
|
||||
android:id="@+id/source_spinner"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/source_prompt"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dip"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/start_native"
|
||||
android:text="@string/start_native"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/rewind_native"
|
||||
android:text="@string/rewind_native"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dip"
|
||||
>
|
||||
<RadioButton
|
||||
android:id="@+id/radio1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="10dip"
|
||||
/>
|
||||
<SurfaceView
|
||||
android:id="@+id/surfaceview1"
|
||||
android:layout_width="640px"
|
||||
android:layout_height="480px"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dip"
|
||||
>
|
||||
<RadioButton
|
||||
android:id="@+id/radio2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="10dip"
|
||||
/>
|
||||
<com.example.nativecodec.MyGLSurfaceView
|
||||
android:id="@+id/glsurfaceview1"
|
||||
android:layout_width="640px"
|
||||
android:layout_height="480px"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">NativeCodec</string>
|
||||
<string name="start_java">Start/Pause\nJava MediaPlayer</string>
|
||||
<string name="start_native">Start/Pause</string>
|
||||
|
||||
<string name="rewind_native">Rewind</string>
|
||||
|
||||
<string name="source_select">Please select the media source</string>
|
||||
<string name="source_prompt">Media source</string>
|
||||
<string-array name="source_array">
|
||||
<item>/sdcard/testfile.mp4</item>
|
||||
</string-array>
|
||||
|
||||
<string name="sink_select">Please select the video sink</string>
|
||||
<string name="sink_prompt">Video sink</string>
|
||||
<string-array name="sink_array">
|
||||
<item>Surface</item>
|
||||
<item>Texture</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
@@ -1,354 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.example.nativecodec;
|
||||
|
||||
import android.graphics.SurfaceTexture;
|
||||
import android.util.Log;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
import java.nio.FloatBuffer;
|
||||
|
||||
import javax.microedition.khronos.egl.EGLConfig;
|
||||
import javax.microedition.khronos.opengles.GL10;
|
||||
|
||||
import android.content.Context;
|
||||
import android.opengl.GLES20;
|
||||
import android.opengl.GLSurfaceView;
|
||||
import android.opengl.Matrix;
|
||||
import android.os.SystemClock;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
public class MyGLSurfaceView extends GLSurfaceView {
|
||||
|
||||
MyRenderer mRenderer;
|
||||
|
||||
public MyGLSurfaceView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public MyGLSurfaceView(Context context, AttributeSet attributeSet) {
|
||||
super(context, attributeSet);
|
||||
init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setEGLContextClientVersion(2);
|
||||
mRenderer = new MyRenderer();
|
||||
setRenderer(mRenderer);
|
||||
Log.i("@@@", "setrenderer");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
mRenderer.onPause();
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
mRenderer.onResume();
|
||||
}
|
||||
|
||||
public SurfaceTexture getSurfaceTexture() {
|
||||
return mRenderer.getSurfaceTexture();
|
||||
}
|
||||
}
|
||||
|
||||
class MyRenderer implements GLSurfaceView.Renderer, SurfaceTexture.OnFrameAvailableListener {
|
||||
|
||||
public MyRenderer() {
|
||||
mVertices = ByteBuffer.allocateDirect(mVerticesData.length
|
||||
* FLOAT_SIZE_BYTES).order(ByteOrder.nativeOrder()).asFloatBuffer();
|
||||
mVertices.put(mVerticesData).position(0);
|
||||
|
||||
Matrix.setIdentityM(mSTMatrix, 0);
|
||||
}
|
||||
public void onPause() {
|
||||
}
|
||||
|
||||
public void onResume() {
|
||||
mLastTime = SystemClock.elapsedRealtimeNanos();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDrawFrame(GL10 glUnused) {
|
||||
synchronized(this) {
|
||||
if (updateSurface) {
|
||||
mSurface.updateTexImage();
|
||||
|
||||
mSurface.getTransformMatrix(mSTMatrix);
|
||||
updateSurface = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Ignore the passed-in GL10 interface, and use the GLES20
|
||||
// class's static methods instead.
|
||||
GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
|
||||
GLES20.glUseProgram(mProgram);
|
||||
checkGlError("glUseProgram");
|
||||
|
||||
GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
|
||||
GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
|
||||
|
||||
mVertices.position(VERTICES_DATA_POS_OFFSET);
|
||||
GLES20.glVertexAttribPointer(maPositionHandle, 3, GLES20.GL_FLOAT, false,
|
||||
VERTICES_DATA_STRIDE_BYTES, mVertices);
|
||||
checkGlError("glVertexAttribPointer maPosition");
|
||||
GLES20.glEnableVertexAttribArray(maPositionHandle);
|
||||
checkGlError("glEnableVertexAttribArray maPositionHandle");
|
||||
|
||||
mVertices.position(VERTICES_DATA_UV_OFFSET);
|
||||
GLES20.glVertexAttribPointer(maTextureHandle, 3, GLES20.GL_FLOAT, false,
|
||||
VERTICES_DATA_STRIDE_BYTES, mVertices);
|
||||
checkGlError("glVertexAttribPointer maTextureHandle");
|
||||
GLES20.glEnableVertexAttribArray(maTextureHandle);
|
||||
checkGlError("glEnableVertexAttribArray maTextureHandle");
|
||||
|
||||
long now = SystemClock.elapsedRealtimeNanos();
|
||||
mRunTime += (now - mLastTime);
|
||||
mLastTime = now;
|
||||
double d = ((double)mRunTime) / 1000000000;
|
||||
Matrix.setIdentityM(mMMatrix, 0);
|
||||
Matrix.rotateM(mMMatrix, 0, 30, (float)Math.sin(d), (float)Math.cos(d), 0);
|
||||
Matrix.multiplyMM(mMVPMatrix, 0, mVMatrix, 0, mMMatrix, 0);
|
||||
Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mMVPMatrix, 0);
|
||||
|
||||
GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0);
|
||||
GLES20.glUniformMatrix4fv(muSTMatrixHandle, 1, false, mSTMatrix, 0);
|
||||
|
||||
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
|
||||
checkGlError("glDrawArrays");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSurfaceChanged(GL10 glUnused, int width, int height) {
|
||||
// Ignore the passed-in GL10 interface, and use the GLES20
|
||||
// class's static methods instead.
|
||||
GLES20.glViewport(0, 0, width, height);
|
||||
mRatio = (float) width / height;
|
||||
Matrix.frustumM(mProjMatrix, 0, -mRatio, mRatio, -1, 1, 3, 7);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
|
||||
// Ignore the passed-in GL10 interface, and use the GLES20
|
||||
// class's static methods instead.
|
||||
|
||||
/* Set up alpha blending and an Android background color */
|
||||
GLES20.glEnable(GLES20.GL_BLEND);
|
||||
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
|
||||
GLES20.glClearColor(0.643f, 0.776f, 0.223f, 1.0f);
|
||||
|
||||
/* Set up shaders and handles to their variables */
|
||||
mProgram = createProgram(mVertexShader, mFragmentShader);
|
||||
if (mProgram == 0) {
|
||||
return;
|
||||
}
|
||||
maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
|
||||
checkGlError("glGetAttribLocation aPosition");
|
||||
if (maPositionHandle == -1) {
|
||||
throw new RuntimeException("Could not get attrib location for aPosition");
|
||||
}
|
||||
maTextureHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoord");
|
||||
checkGlError("glGetAttribLocation aTextureCoord");
|
||||
if (maTextureHandle == -1) {
|
||||
throw new RuntimeException("Could not get attrib location for aTextureCoord");
|
||||
}
|
||||
|
||||
muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
|
||||
checkGlError("glGetUniformLocation uMVPMatrix");
|
||||
if (muMVPMatrixHandle == -1) {
|
||||
throw new RuntimeException("Could not get attrib location for uMVPMatrix");
|
||||
}
|
||||
|
||||
muSTMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uSTMatrix");
|
||||
checkGlError("glGetUniformLocation uSTMatrix");
|
||||
if (muMVPMatrixHandle == -1) {
|
||||
throw new RuntimeException("Could not get attrib location for uSTMatrix");
|
||||
}
|
||||
|
||||
checkGlError("glGetUniformLocation uCRatio");
|
||||
if (muMVPMatrixHandle == -1) {
|
||||
throw new RuntimeException("Could not get attrib location for uCRatio");
|
||||
}
|
||||
|
||||
/*
|
||||
* Create our texture. This has to be done each time the
|
||||
* surface is created.
|
||||
*/
|
||||
|
||||
int[] textures = new int[1];
|
||||
GLES20.glGenTextures(1, textures, 0);
|
||||
|
||||
mTextureID = textures[0];
|
||||
GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
|
||||
checkGlError("glBindTexture mTextureID");
|
||||
|
||||
// Can't do mipmapping with camera source
|
||||
GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER,
|
||||
GLES20.GL_NEAREST);
|
||||
GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER,
|
||||
GLES20.GL_LINEAR);
|
||||
// Clamp to edge is the only option
|
||||
GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S,
|
||||
GLES20.GL_CLAMP_TO_EDGE);
|
||||
GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T,
|
||||
GLES20.GL_CLAMP_TO_EDGE);
|
||||
checkGlError("glTexParameteri mTextureID");
|
||||
|
||||
/*
|
||||
* Create the SurfaceTexture that will feed this textureID, and pass it to the camera
|
||||
*/
|
||||
|
||||
mSurface = new SurfaceTexture(mTextureID);
|
||||
mSurface.setOnFrameAvailableListener(this);
|
||||
|
||||
Matrix.setLookAtM(mVMatrix, 0, 0, 0, 4f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
|
||||
|
||||
synchronized(this) {
|
||||
updateSurface = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
synchronized public void onFrameAvailable(SurfaceTexture surface) {
|
||||
/* For simplicity, SurfaceTexture calls here when it has new
|
||||
* data available. Call may come in from some random thread,
|
||||
* so let's be safe and use synchronize. No OpenGL calls can be done here.
|
||||
*/
|
||||
updateSurface = true;
|
||||
//Log.v(TAG, "onFrameAvailable " + surface.getTimestamp());
|
||||
}
|
||||
|
||||
private int loadShader(int shaderType, String source) {
|
||||
int shader = GLES20.glCreateShader(shaderType);
|
||||
if (shader != 0) {
|
||||
GLES20.glShaderSource(shader, source);
|
||||
GLES20.glCompileShader(shader);
|
||||
int[] compiled = new int[1];
|
||||
GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
|
||||
if (compiled[0] == 0) {
|
||||
Log.e(TAG, "Could not compile shader " + shaderType + ":");
|
||||
Log.e(TAG, GLES20.glGetShaderInfoLog(shader));
|
||||
GLES20.glDeleteShader(shader);
|
||||
shader = 0;
|
||||
}
|
||||
}
|
||||
return shader;
|
||||
}
|
||||
|
||||
private int createProgram(String vertexSource, String fragmentSource) {
|
||||
int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexSource);
|
||||
if (vertexShader == 0) {
|
||||
return 0;
|
||||
}
|
||||
int pixelShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentSource);
|
||||
if (pixelShader == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int program = GLES20.glCreateProgram();
|
||||
if (program != 0) {
|
||||
GLES20.glAttachShader(program, vertexShader);
|
||||
checkGlError("glAttachShader");
|
||||
GLES20.glAttachShader(program, pixelShader);
|
||||
checkGlError("glAttachShader");
|
||||
GLES20.glLinkProgram(program);
|
||||
int[] linkStatus = new int[1];
|
||||
GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, linkStatus, 0);
|
||||
if (linkStatus[0] != GLES20.GL_TRUE) {
|
||||
Log.e(TAG, "Could not link program: ");
|
||||
Log.e(TAG, GLES20.glGetProgramInfoLog(program));
|
||||
GLES20.glDeleteProgram(program);
|
||||
program = 0;
|
||||
}
|
||||
}
|
||||
return program;
|
||||
}
|
||||
|
||||
private void checkGlError(String op) {
|
||||
int error;
|
||||
while ((error = GLES20.glGetError()) != GLES20.GL_NO_ERROR) {
|
||||
Log.e(TAG, op + ": glError " + error);
|
||||
throw new RuntimeException(op + ": glError " + error);
|
||||
}
|
||||
}
|
||||
|
||||
private static final int FLOAT_SIZE_BYTES = 4;
|
||||
private static final int VERTICES_DATA_STRIDE_BYTES = 5 * FLOAT_SIZE_BYTES;
|
||||
private static final int VERTICES_DATA_POS_OFFSET = 0;
|
||||
private static final int VERTICES_DATA_UV_OFFSET = 3;
|
||||
private final float[] mVerticesData = {
|
||||
// X, Y, Z, U, V
|
||||
-1.25f, -1.0f, 0, 0.f, 0.f,
|
||||
1.25f, -1.0f, 0, 1.f, 0.f,
|
||||
-1.25f, 1.0f, 0, 0.f, 1.f,
|
||||
1.25f, 1.0f, 0, 1.f, 1.f,
|
||||
};
|
||||
|
||||
private FloatBuffer mVertices;
|
||||
|
||||
private final String mVertexShader =
|
||||
"uniform mat4 uMVPMatrix;\n" +
|
||||
"uniform mat4 uSTMatrix;\n" +
|
||||
"attribute vec4 aPosition;\n" +
|
||||
"attribute vec4 aTextureCoord;\n" +
|
||||
"varying vec2 vTextureCoord;\n" +
|
||||
"void main() {\n" +
|
||||
" gl_Position = uMVPMatrix * aPosition;\n" +
|
||||
" vTextureCoord = (uSTMatrix * aTextureCoord).xy;\n" +
|
||||
"}\n";
|
||||
|
||||
private final String mFragmentShader =
|
||||
"#extension GL_OES_EGL_image_external : require\n" +
|
||||
"precision mediump float;\n" +
|
||||
"varying vec2 vTextureCoord;\n" +
|
||||
"uniform samplerExternalOES sTexture;\n" +
|
||||
"void main() {\n" +
|
||||
" gl_FragColor = texture2D(sTexture, vTextureCoord);\n" +
|
||||
"}\n";
|
||||
|
||||
private float[] mMVPMatrix = new float[16];
|
||||
private float[] mProjMatrix = new float[16];
|
||||
private float[] mMMatrix = new float[16];
|
||||
private float[] mVMatrix = new float[16];
|
||||
private float[] mSTMatrix = new float[16];
|
||||
|
||||
private int mProgram;
|
||||
private int mTextureID;
|
||||
private int muMVPMatrixHandle;
|
||||
private int muSTMatrixHandle;
|
||||
private int maPositionHandle;
|
||||
private int maTextureHandle;
|
||||
|
||||
private float mRatio = 1.0f;
|
||||
private SurfaceTexture mSurface;
|
||||
private boolean updateSurface = false;
|
||||
private long mLastTime = -1;
|
||||
private long mRunTime = 0;
|
||||
|
||||
private static final String TAG = "MyRenderer";
|
||||
|
||||
// Magic key
|
||||
private static final int GL_TEXTURE_EXTERNAL_OES = 0x8D65;
|
||||
|
||||
public SurfaceTexture getSurfaceTexture() {
|
||||
return mSurface;
|
||||
}
|
||||
}
|
||||
@@ -1,319 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.example.nativecodec;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.SurfaceTexture;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.Surface;
|
||||
import android.view.SurfaceHolder;
|
||||
import android.view.SurfaceView;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class NativeCodec extends Activity {
|
||||
static final String TAG = "NativeCodec";
|
||||
|
||||
String mSourceString = null;
|
||||
|
||||
SurfaceView mSurfaceView1;
|
||||
SurfaceHolder mSurfaceHolder1;
|
||||
|
||||
VideoSink mSelectedVideoSink;
|
||||
VideoSink mNativeCodecPlayerVideoSink;
|
||||
|
||||
SurfaceHolderVideoSink mSurfaceHolder1VideoSink;
|
||||
GLViewVideoSink mGLView1VideoSink;
|
||||
|
||||
boolean mCreated = false;
|
||||
boolean mIsPlaying = false;
|
||||
|
||||
/** Called when the activity is first created. */
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
setContentView(R.layout.main);
|
||||
|
||||
mGLView1 = (MyGLSurfaceView) findViewById(R.id.glsurfaceview1);
|
||||
|
||||
// set up the Surface 1 video sink
|
||||
mSurfaceView1 = (SurfaceView) findViewById(R.id.surfaceview1);
|
||||
mSurfaceHolder1 = mSurfaceView1.getHolder();
|
||||
|
||||
mSurfaceHolder1.addCallback(new SurfaceHolder.Callback() {
|
||||
|
||||
@Override
|
||||
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
||||
Log.v(TAG, "surfaceChanged format=" + format + ", width=" + width + ", height="
|
||||
+ height);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void surfaceCreated(SurfaceHolder holder) {
|
||||
Log.v(TAG, "surfaceCreated");
|
||||
if (mRadio1.isChecked()) {
|
||||
setSurface(holder.getSurface());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void surfaceDestroyed(SurfaceHolder holder) {
|
||||
Log.v(TAG, "surfaceDestroyed");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// initialize content source spinner
|
||||
Spinner sourceSpinner = (Spinner) findViewById(R.id.source_spinner);
|
||||
ArrayAdapter<CharSequence> sourceAdapter = ArrayAdapter.createFromResource(
|
||||
this, R.array.source_array, android.R.layout.simple_spinner_item);
|
||||
sourceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
sourceSpinner.setAdapter(sourceAdapter);
|
||||
sourceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
|
||||
mSourceString = parent.getItemAtPosition(pos).toString();
|
||||
Log.v(TAG, "onItemSelected " + mSourceString);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView parent) {
|
||||
Log.v(TAG, "onNothingSelected");
|
||||
mSourceString = null;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
mRadio1 = (RadioButton) findViewById(R.id.radio1);
|
||||
mRadio2 = (RadioButton) findViewById(R.id.radio2);
|
||||
|
||||
OnCheckedChangeListener checklistener = new CompoundButton.OnCheckedChangeListener() {
|
||||
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
Log.i("@@@@", "oncheckedchanged");
|
||||
if (buttonView == mRadio1 && isChecked) {
|
||||
mRadio2.setChecked(false);
|
||||
}
|
||||
if (buttonView == mRadio2 && isChecked) {
|
||||
mRadio1.setChecked(false);
|
||||
}
|
||||
if (isChecked) {
|
||||
if (mRadio1.isChecked()) {
|
||||
if (mSurfaceHolder1VideoSink == null) {
|
||||
mSurfaceHolder1VideoSink = new SurfaceHolderVideoSink(mSurfaceHolder1);
|
||||
}
|
||||
mSelectedVideoSink = mSurfaceHolder1VideoSink;
|
||||
mGLView1.onPause();
|
||||
Log.i("@@@@", "glview pause");
|
||||
} else {
|
||||
mGLView1.onResume();
|
||||
if (mGLView1VideoSink == null) {
|
||||
mGLView1VideoSink = new GLViewVideoSink(mGLView1);
|
||||
}
|
||||
mSelectedVideoSink = mGLView1VideoSink;
|
||||
}
|
||||
switchSurface();
|
||||
}
|
||||
}
|
||||
};
|
||||
mRadio1.setOnCheckedChangeListener(checklistener);
|
||||
mRadio2.setOnCheckedChangeListener(checklistener);
|
||||
mRadio2.toggle();
|
||||
|
||||
// the surfaces themselves are easier targets than the radio buttons
|
||||
mSurfaceView1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mRadio1.toggle();
|
||||
}
|
||||
});
|
||||
mGLView1.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mRadio2.toggle();
|
||||
}
|
||||
});
|
||||
|
||||
// initialize button click handlers
|
||||
|
||||
// native MediaPlayer start/pause
|
||||
((Button) findViewById(R.id.start_native)).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (!mCreated) {
|
||||
if (mNativeCodecPlayerVideoSink == null) {
|
||||
if (mSelectedVideoSink == null) {
|
||||
return;
|
||||
}
|
||||
mSelectedVideoSink.useAsSinkForNative();
|
||||
mNativeCodecPlayerVideoSink = mSelectedVideoSink;
|
||||
}
|
||||
if (mSourceString != null) {
|
||||
mCreated = createStreamingMediaPlayer(mSourceString);
|
||||
}
|
||||
}
|
||||
if (mCreated) {
|
||||
mIsPlaying = !mIsPlaying;
|
||||
setPlayingStreamingMediaPlayer(mIsPlaying);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
// native MediaPlayer rewind
|
||||
((Button) findViewById(R.id.rewind_native)).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (mNativeCodecPlayerVideoSink != null) {
|
||||
rewindStreamingMediaPlayer();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
void switchSurface() {
|
||||
if (mCreated && mNativeCodecPlayerVideoSink != mSelectedVideoSink) {
|
||||
// shutdown and recreate on other surface
|
||||
Log.i("@@@", "shutting down player");
|
||||
shutdown();
|
||||
mCreated = false;
|
||||
mSelectedVideoSink.useAsSinkForNative();
|
||||
mNativeCodecPlayerVideoSink = mSelectedVideoSink;
|
||||
if (mSourceString != null) {
|
||||
Log.i("@@@", "recreating player");
|
||||
mCreated = createStreamingMediaPlayer(mSourceString);
|
||||
mIsPlaying = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Called when the activity is about to be paused. */
|
||||
@Override
|
||||
protected void onPause()
|
||||
{
|
||||
mIsPlaying = false;
|
||||
setPlayingStreamingMediaPlayer(false);
|
||||
mGLView1.onPause();
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (mRadio2.isChecked()) {
|
||||
mGLView1.onResume();
|
||||
}
|
||||
}
|
||||
|
||||
/** Called when the activity is about to be destroyed. */
|
||||
@Override
|
||||
protected void onDestroy()
|
||||
{
|
||||
shutdown();
|
||||
mCreated = false;
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
private MyGLSurfaceView mGLView1;
|
||||
|
||||
private RadioButton mRadio1;
|
||||
|
||||
private RadioButton mRadio2;
|
||||
|
||||
/** Native methods, implemented in jni folder */
|
||||
public static native void createEngine();
|
||||
public static native boolean createStreamingMediaPlayer(String filename);
|
||||
public static native void setPlayingStreamingMediaPlayer(boolean isPlaying);
|
||||
public static native void shutdown();
|
||||
public static native void setSurface(Surface surface);
|
||||
public static native void rewindStreamingMediaPlayer();
|
||||
|
||||
/** Load jni .so on initialization */
|
||||
static {
|
||||
System.loadLibrary("native-codec-jni");
|
||||
}
|
||||
|
||||
// VideoSink abstracts out the difference between Surface and SurfaceTexture
|
||||
// aka SurfaceHolder and GLSurfaceView
|
||||
static abstract class VideoSink {
|
||||
|
||||
abstract void setFixedSize(int width, int height);
|
||||
abstract void useAsSinkForNative();
|
||||
|
||||
}
|
||||
|
||||
static class SurfaceHolderVideoSink extends VideoSink {
|
||||
|
||||
private final SurfaceHolder mSurfaceHolder;
|
||||
|
||||
SurfaceHolderVideoSink(SurfaceHolder surfaceHolder) {
|
||||
mSurfaceHolder = surfaceHolder;
|
||||
}
|
||||
|
||||
@Override
|
||||
void setFixedSize(int width, int height) {
|
||||
mSurfaceHolder.setFixedSize(width, height);
|
||||
}
|
||||
|
||||
@Override
|
||||
void useAsSinkForNative() {
|
||||
Surface s = mSurfaceHolder.getSurface();
|
||||
Log.i("@@@", "setting surface " + s);
|
||||
setSurface(s);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class GLViewVideoSink extends VideoSink {
|
||||
|
||||
private final MyGLSurfaceView mMyGLSurfaceView;
|
||||
|
||||
GLViewVideoSink(MyGLSurfaceView myGLSurfaceView) {
|
||||
mMyGLSurfaceView = myGLSurfaceView;
|
||||
}
|
||||
|
||||
@Override
|
||||
void setFixedSize(int width, int height) {
|
||||
}
|
||||
|
||||
@Override
|
||||
void useAsSinkForNative() {
|
||||
SurfaceTexture st = mMyGLSurfaceView.getSurfaceTexture();
|
||||
Surface s = new Surface(st);
|
||||
setSurface(s);
|
||||
s.release();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -1,367 +0,0 @@
|
||||
glActiveShaderProgram
|
||||
glActiveTexture
|
||||
glAttachShader
|
||||
glBeginQuery
|
||||
glBeginTransformFeedback
|
||||
glBindAttribLocation
|
||||
glBindBuffer
|
||||
glBindBufferBase
|
||||
glBindBufferRange
|
||||
glBindFramebuffer
|
||||
glBindImageTexture
|
||||
glBindProgramPipeline
|
||||
glBindRenderbuffer
|
||||
glBindSampler
|
||||
glBindTexture
|
||||
glBindTransformFeedback
|
||||
glBindVertexArray
|
||||
glBindVertexArrayOES
|
||||
glBindVertexBuffer
|
||||
glBlendBarrierKHR
|
||||
glBlendColor
|
||||
glBlendEquation
|
||||
glBlendEquationSeparate
|
||||
glBlendEquationSeparateiEXT
|
||||
glBlendEquationiEXT
|
||||
glBlendFunc
|
||||
glBlendFuncSeparate
|
||||
glBlendFuncSeparateiEXT
|
||||
glBlendFunciEXT
|
||||
glBlitFramebuffer
|
||||
glBufferData
|
||||
glBufferSubData
|
||||
glCheckFramebufferStatus
|
||||
glClear
|
||||
glClearBufferfi
|
||||
glClearBufferfv
|
||||
glClearBufferiv
|
||||
glClearBufferuiv
|
||||
glClearColor
|
||||
glClearDepthf
|
||||
glClearStencil
|
||||
glClientWaitSync
|
||||
glColorMask
|
||||
glColorMaskiEXT
|
||||
glCompileShader
|
||||
glCompressedTexImage2D
|
||||
glCompressedTexImage3D
|
||||
glCompressedTexImage3DOES
|
||||
glCompressedTexSubImage2D
|
||||
glCompressedTexSubImage3D
|
||||
glCompressedTexSubImage3DOES
|
||||
glCopyBufferSubData
|
||||
glCopyImageSubDataEXT
|
||||
glCopyTexImage2D
|
||||
glCopyTexSubImage2D
|
||||
glCopyTexSubImage3D
|
||||
glCopyTexSubImage3DOES
|
||||
glCreateProgram
|
||||
glCreateShader
|
||||
glCreateShaderProgramv
|
||||
glCullFace
|
||||
glDebugMessageCallbackKHR
|
||||
glDebugMessageControlKHR
|
||||
glDebugMessageInsertKHR
|
||||
glDeleteBuffers
|
||||
glDeleteFramebuffers
|
||||
glDeleteProgram
|
||||
glDeleteProgramPipelines
|
||||
glDeleteQueries
|
||||
glDeleteRenderbuffers
|
||||
glDeleteSamplers
|
||||
glDeleteShader
|
||||
glDeleteSync
|
||||
glDeleteTextures
|
||||
glDeleteTransformFeedbacks
|
||||
glDeleteVertexArrays
|
||||
glDeleteVertexArraysOES
|
||||
glDepthFunc
|
||||
glDepthMask
|
||||
glDepthRangef
|
||||
glDetachShader
|
||||
glDisable
|
||||
glDisableVertexAttribArray
|
||||
glDisableiEXT
|
||||
glDispatchCompute
|
||||
glDispatchComputeIndirect
|
||||
glDrawArrays
|
||||
glDrawArraysIndirect
|
||||
glDrawArraysInstanced
|
||||
glDrawBuffers
|
||||
glDrawElements
|
||||
glDrawElementsIndirect
|
||||
glDrawElementsInstanced
|
||||
glDrawRangeElements
|
||||
glEGLImageTargetRenderbufferStorageOES
|
||||
glEGLImageTargetTexture2DOES
|
||||
glEnable
|
||||
glEnableVertexAttribArray
|
||||
glEnableiEXT
|
||||
glEndQuery
|
||||
glEndTransformFeedback
|
||||
glFenceSync
|
||||
glFinish
|
||||
glFlush
|
||||
glFlushMappedBufferRange
|
||||
glFramebufferParameteri
|
||||
glFramebufferRenderbuffer
|
||||
glFramebufferTexture2D
|
||||
glFramebufferTexture3DOES
|
||||
glFramebufferTextureEXT
|
||||
glFramebufferTextureLayer
|
||||
glFrontFace
|
||||
glGenBuffers
|
||||
glGenFramebuffers
|
||||
glGenProgramPipelines
|
||||
glGenQueries
|
||||
glGenRenderbuffers
|
||||
glGenSamplers
|
||||
glGenTextures
|
||||
glGenTransformFeedbacks
|
||||
glGenVertexArrays
|
||||
glGenVertexArraysOES
|
||||
glGenerateMipmap
|
||||
glGetActiveAttrib
|
||||
glGetActiveUniform
|
||||
glGetActiveUniformBlockName
|
||||
glGetActiveUniformBlockiv
|
||||
glGetActiveUniformsiv
|
||||
glGetAttachedShaders
|
||||
glGetAttribLocation
|
||||
glGetBooleani_v
|
||||
glGetBooleanv
|
||||
glGetBufferParameteri64v
|
||||
glGetBufferParameteriv
|
||||
glGetBufferPointerv
|
||||
glGetBufferPointervOES
|
||||
glGetDebugMessageLogKHR
|
||||
glGetError
|
||||
glGetFloatv
|
||||
glGetFragDataLocation
|
||||
glGetFramebufferAttachmentParameteriv
|
||||
glGetFramebufferParameteriv
|
||||
glGetInteger64i_v
|
||||
glGetInteger64v
|
||||
glGetIntegeri_v
|
||||
glGetIntegerv
|
||||
glGetInternalformativ
|
||||
glGetMultisamplefv
|
||||
glGetObjectLabelKHR
|
||||
glGetObjectPtrLabelKHR
|
||||
glGetPointervKHR
|
||||
glGetProgramBinary
|
||||
glGetProgramBinaryOES
|
||||
glGetProgramInfoLog
|
||||
glGetProgramInterfaceiv
|
||||
glGetProgramPipelineInfoLog
|
||||
glGetProgramPipelineiv
|
||||
glGetProgramResourceIndex
|
||||
glGetProgramResourceLocation
|
||||
glGetProgramResourceName
|
||||
glGetProgramResourceiv
|
||||
glGetProgramiv
|
||||
glGetQueryObjectuiv
|
||||
glGetQueryiv
|
||||
glGetRenderbufferParameteriv
|
||||
glGetSamplerParameterIivEXT
|
||||
glGetSamplerParameterIuivEXT
|
||||
glGetSamplerParameterfv
|
||||
glGetSamplerParameteriv
|
||||
glGetShaderInfoLog
|
||||
glGetShaderPrecisionFormat
|
||||
glGetShaderSource
|
||||
glGetShaderiv
|
||||
glGetString
|
||||
glGetStringi
|
||||
glGetSynciv
|
||||
glGetTexLevelParameterfv
|
||||
glGetTexLevelParameteriv
|
||||
glGetTexParameterIivEXT
|
||||
glGetTexParameterIuivEXT
|
||||
glGetTexParameterfv
|
||||
glGetTexParameteriv
|
||||
glGetTransformFeedbackVarying
|
||||
glGetUniformBlockIndex
|
||||
glGetUniformIndices
|
||||
glGetUniformLocation
|
||||
glGetUniformfv
|
||||
glGetUniformiv
|
||||
glGetUniformuiv
|
||||
glGetVertexAttribIiv
|
||||
glGetVertexAttribIuiv
|
||||
glGetVertexAttribPointerv
|
||||
glGetVertexAttribfv
|
||||
glGetVertexAttribiv
|
||||
glHint
|
||||
glInvalidateFramebuffer
|
||||
glInvalidateSubFramebuffer
|
||||
glIsBuffer
|
||||
glIsEnabled
|
||||
glIsEnablediEXT
|
||||
glIsFramebuffer
|
||||
glIsProgram
|
||||
glIsProgramPipeline
|
||||
glIsQuery
|
||||
glIsRenderbuffer
|
||||
glIsSampler
|
||||
glIsShader
|
||||
glIsSync
|
||||
glIsTexture
|
||||
glIsTransformFeedback
|
||||
glIsVertexArray
|
||||
glIsVertexArrayOES
|
||||
glLineWidth
|
||||
glLinkProgram
|
||||
glMapBufferOES
|
||||
glMapBufferRange
|
||||
glMemoryBarrier
|
||||
glMemoryBarrierByRegion
|
||||
glMinSampleShadingOES
|
||||
glObjectLabelKHR
|
||||
glObjectPtrLabelKHR
|
||||
glPatchParameteriEXT
|
||||
glPauseTransformFeedback
|
||||
glPixelStorei
|
||||
glPolygonOffset
|
||||
glPopDebugGroupKHR
|
||||
glPrimitiveBoundingBoxEXT
|
||||
glProgramBinary
|
||||
glProgramBinaryOES
|
||||
glProgramParameteri
|
||||
glProgramUniform1f
|
||||
glProgramUniform1fv
|
||||
glProgramUniform1i
|
||||
glProgramUniform1iv
|
||||
glProgramUniform1ui
|
||||
glProgramUniform1uiv
|
||||
glProgramUniform2f
|
||||
glProgramUniform2fv
|
||||
glProgramUniform2i
|
||||
glProgramUniform2iv
|
||||
glProgramUniform2ui
|
||||
glProgramUniform2uiv
|
||||
glProgramUniform3f
|
||||
glProgramUniform3fv
|
||||
glProgramUniform3i
|
||||
glProgramUniform3iv
|
||||
glProgramUniform3ui
|
||||
glProgramUniform3uiv
|
||||
glProgramUniform4f
|
||||
glProgramUniform4fv
|
||||
glProgramUniform4i
|
||||
glProgramUniform4iv
|
||||
glProgramUniform4ui
|
||||
glProgramUniform4uiv
|
||||
glProgramUniformMatrix2fv
|
||||
glProgramUniformMatrix2x3fv
|
||||
glProgramUniformMatrix2x4fv
|
||||
glProgramUniformMatrix3fv
|
||||
glProgramUniformMatrix3x2fv
|
||||
glProgramUniformMatrix3x4fv
|
||||
glProgramUniformMatrix4fv
|
||||
glProgramUniformMatrix4x2fv
|
||||
glProgramUniformMatrix4x3fv
|
||||
glPushDebugGroupKHR
|
||||
glReadBuffer
|
||||
glReadPixels
|
||||
glReleaseShaderCompiler
|
||||
glRenderbufferStorage
|
||||
glRenderbufferStorageMultisample
|
||||
glResumeTransformFeedback
|
||||
glSampleCoverage
|
||||
glSampleMaski
|
||||
glSamplerParameterIivEXT
|
||||
glSamplerParameterIuivEXT
|
||||
glSamplerParameterf
|
||||
glSamplerParameterfv
|
||||
glSamplerParameteri
|
||||
glSamplerParameteriv
|
||||
glScissor
|
||||
glShaderBinary
|
||||
glShaderSource
|
||||
glStencilFunc
|
||||
glStencilFuncSeparate
|
||||
glStencilMask
|
||||
glStencilMaskSeparate
|
||||
glStencilOp
|
||||
glStencilOpSeparate
|
||||
glTexBufferEXT
|
||||
glTexBufferRangeEXT
|
||||
glTexImage2D
|
||||
glTexImage3D
|
||||
glTexImage3DOES
|
||||
glTexParameterIivEXT
|
||||
glTexParameterIuivEXT
|
||||
glTexParameterf
|
||||
glTexParameterfv
|
||||
glTexParameteri
|
||||
glTexParameteriv
|
||||
glTexStorage2D
|
||||
glTexStorage2DMultisample
|
||||
glTexStorage3D
|
||||
glTexStorage3DMultisampleOES
|
||||
glTexSubImage2D
|
||||
glTexSubImage3D
|
||||
glTexSubImage3DOES
|
||||
glTransformFeedbackVaryings
|
||||
glUniform1f
|
||||
glUniform1fv
|
||||
glUniform1i
|
||||
glUniform1iv
|
||||
glUniform1ui
|
||||
glUniform1uiv
|
||||
glUniform2f
|
||||
glUniform2fv
|
||||
glUniform2i
|
||||
glUniform2iv
|
||||
glUniform2ui
|
||||
glUniform2uiv
|
||||
glUniform3f
|
||||
glUniform3fv
|
||||
glUniform3i
|
||||
glUniform3iv
|
||||
glUniform3ui
|
||||
glUniform3uiv
|
||||
glUniform4f
|
||||
glUniform4fv
|
||||
glUniform4i
|
||||
glUniform4iv
|
||||
glUniform4ui
|
||||
glUniform4uiv
|
||||
glUniformBlockBinding
|
||||
glUniformMatrix2fv
|
||||
glUniformMatrix2x3fv
|
||||
glUniformMatrix2x4fv
|
||||
glUniformMatrix3fv
|
||||
glUniformMatrix3x2fv
|
||||
glUniformMatrix3x4fv
|
||||
glUniformMatrix4fv
|
||||
glUniformMatrix4x2fv
|
||||
glUniformMatrix4x3fv
|
||||
glUnmapBuffer
|
||||
glUnmapBufferOES
|
||||
glUseProgram
|
||||
glUseProgramStages
|
||||
glValidateProgram
|
||||
glValidateProgramPipeline
|
||||
glVertexAttrib1f
|
||||
glVertexAttrib1fv
|
||||
glVertexAttrib2f
|
||||
glVertexAttrib2fv
|
||||
glVertexAttrib3f
|
||||
glVertexAttrib3fv
|
||||
glVertexAttrib4f
|
||||
glVertexAttrib4fv
|
||||
glVertexAttribBinding
|
||||
glVertexAttribDivisor
|
||||
glVertexAttribFormat
|
||||
glVertexAttribI4i
|
||||
glVertexAttribI4iv
|
||||
glVertexAttribI4ui
|
||||
glVertexAttribI4uiv
|
||||
glVertexAttribIFormat
|
||||
glVertexAttribIPointer
|
||||
glVertexAttribPointer
|
||||
glVertexBindingDivisor
|
||||
glViewport
|
||||
glWaitSync
|
||||
@@ -1,367 +0,0 @@
|
||||
glActiveShaderProgram
|
||||
glActiveTexture
|
||||
glAttachShader
|
||||
glBeginQuery
|
||||
glBeginTransformFeedback
|
||||
glBindAttribLocation
|
||||
glBindBuffer
|
||||
glBindBufferBase
|
||||
glBindBufferRange
|
||||
glBindFramebuffer
|
||||
glBindImageTexture
|
||||
glBindProgramPipeline
|
||||
glBindRenderbuffer
|
||||
glBindSampler
|
||||
glBindTexture
|
||||
glBindTransformFeedback
|
||||
glBindVertexArray
|
||||
glBindVertexArrayOES
|
||||
glBindVertexBuffer
|
||||
glBlendBarrierKHR
|
||||
glBlendColor
|
||||
glBlendEquation
|
||||
glBlendEquationSeparate
|
||||
glBlendEquationSeparateiEXT
|
||||
glBlendEquationiEXT
|
||||
glBlendFunc
|
||||
glBlendFuncSeparate
|
||||
glBlendFuncSeparateiEXT
|
||||
glBlendFunciEXT
|
||||
glBlitFramebuffer
|
||||
glBufferData
|
||||
glBufferSubData
|
||||
glCheckFramebufferStatus
|
||||
glClear
|
||||
glClearBufferfi
|
||||
glClearBufferfv
|
||||
glClearBufferiv
|
||||
glClearBufferuiv
|
||||
glClearColor
|
||||
glClearDepthf
|
||||
glClearStencil
|
||||
glClientWaitSync
|
||||
glColorMask
|
||||
glColorMaskiEXT
|
||||
glCompileShader
|
||||
glCompressedTexImage2D
|
||||
glCompressedTexImage3D
|
||||
glCompressedTexImage3DOES
|
||||
glCompressedTexSubImage2D
|
||||
glCompressedTexSubImage3D
|
||||
glCompressedTexSubImage3DOES
|
||||
glCopyBufferSubData
|
||||
glCopyImageSubDataEXT
|
||||
glCopyTexImage2D
|
||||
glCopyTexSubImage2D
|
||||
glCopyTexSubImage3D
|
||||
glCopyTexSubImage3DOES
|
||||
glCreateProgram
|
||||
glCreateShader
|
||||
glCreateShaderProgramv
|
||||
glCullFace
|
||||
glDebugMessageCallbackKHR
|
||||
glDebugMessageControlKHR
|
||||
glDebugMessageInsertKHR
|
||||
glDeleteBuffers
|
||||
glDeleteFramebuffers
|
||||
glDeleteProgram
|
||||
glDeleteProgramPipelines
|
||||
glDeleteQueries
|
||||
glDeleteRenderbuffers
|
||||
glDeleteSamplers
|
||||
glDeleteShader
|
||||
glDeleteSync
|
||||
glDeleteTextures
|
||||
glDeleteTransformFeedbacks
|
||||
glDeleteVertexArrays
|
||||
glDeleteVertexArraysOES
|
||||
glDepthFunc
|
||||
glDepthMask
|
||||
glDepthRangef
|
||||
glDetachShader
|
||||
glDisable
|
||||
glDisableVertexAttribArray
|
||||
glDisableiEXT
|
||||
glDispatchCompute
|
||||
glDispatchComputeIndirect
|
||||
glDrawArrays
|
||||
glDrawArraysIndirect
|
||||
glDrawArraysInstanced
|
||||
glDrawBuffers
|
||||
glDrawElements
|
||||
glDrawElementsIndirect
|
||||
glDrawElementsInstanced
|
||||
glDrawRangeElements
|
||||
glEGLImageTargetRenderbufferStorageOES
|
||||
glEGLImageTargetTexture2DOES
|
||||
glEnable
|
||||
glEnableVertexAttribArray
|
||||
glEnableiEXT
|
||||
glEndQuery
|
||||
glEndTransformFeedback
|
||||
glFenceSync
|
||||
glFinish
|
||||
glFlush
|
||||
glFlushMappedBufferRange
|
||||
glFramebufferParameteri
|
||||
glFramebufferRenderbuffer
|
||||
glFramebufferTexture2D
|
||||
glFramebufferTexture3DOES
|
||||
glFramebufferTextureEXT
|
||||
glFramebufferTextureLayer
|
||||
glFrontFace
|
||||
glGenBuffers
|
||||
glGenFramebuffers
|
||||
glGenProgramPipelines
|
||||
glGenQueries
|
||||
glGenRenderbuffers
|
||||
glGenSamplers
|
||||
glGenTextures
|
||||
glGenTransformFeedbacks
|
||||
glGenVertexArrays
|
||||
glGenVertexArraysOES
|
||||
glGenerateMipmap
|
||||
glGetActiveAttrib
|
||||
glGetActiveUniform
|
||||
glGetActiveUniformBlockName
|
||||
glGetActiveUniformBlockiv
|
||||
glGetActiveUniformsiv
|
||||
glGetAttachedShaders
|
||||
glGetAttribLocation
|
||||
glGetBooleani_v
|
||||
glGetBooleanv
|
||||
glGetBufferParameteri64v
|
||||
glGetBufferParameteriv
|
||||
glGetBufferPointerv
|
||||
glGetBufferPointervOES
|
||||
glGetDebugMessageLogKHR
|
||||
glGetError
|
||||
glGetFloatv
|
||||
glGetFragDataLocation
|
||||
glGetFramebufferAttachmentParameteriv
|
||||
glGetFramebufferParameteriv
|
||||
glGetInteger64i_v
|
||||
glGetInteger64v
|
||||
glGetIntegeri_v
|
||||
glGetIntegerv
|
||||
glGetInternalformativ
|
||||
glGetMultisamplefv
|
||||
glGetObjectLabelKHR
|
||||
glGetObjectPtrLabelKHR
|
||||
glGetPointervKHR
|
||||
glGetProgramBinary
|
||||
glGetProgramBinaryOES
|
||||
glGetProgramInfoLog
|
||||
glGetProgramInterfaceiv
|
||||
glGetProgramPipelineInfoLog
|
||||
glGetProgramPipelineiv
|
||||
glGetProgramResourceIndex
|
||||
glGetProgramResourceLocation
|
||||
glGetProgramResourceName
|
||||
glGetProgramResourceiv
|
||||
glGetProgramiv
|
||||
glGetQueryObjectuiv
|
||||
glGetQueryiv
|
||||
glGetRenderbufferParameteriv
|
||||
glGetSamplerParameterIivEXT
|
||||
glGetSamplerParameterIuivEXT
|
||||
glGetSamplerParameterfv
|
||||
glGetSamplerParameteriv
|
||||
glGetShaderInfoLog
|
||||
glGetShaderPrecisionFormat
|
||||
glGetShaderSource
|
||||
glGetShaderiv
|
||||
glGetString
|
||||
glGetStringi
|
||||
glGetSynciv
|
||||
glGetTexLevelParameterfv
|
||||
glGetTexLevelParameteriv
|
||||
glGetTexParameterIivEXT
|
||||
glGetTexParameterIuivEXT
|
||||
glGetTexParameterfv
|
||||
glGetTexParameteriv
|
||||
glGetTransformFeedbackVarying
|
||||
glGetUniformBlockIndex
|
||||
glGetUniformIndices
|
||||
glGetUniformLocation
|
||||
glGetUniformfv
|
||||
glGetUniformiv
|
||||
glGetUniformuiv
|
||||
glGetVertexAttribIiv
|
||||
glGetVertexAttribIuiv
|
||||
glGetVertexAttribPointerv
|
||||
glGetVertexAttribfv
|
||||
glGetVertexAttribiv
|
||||
glHint
|
||||
glInvalidateFramebuffer
|
||||
glInvalidateSubFramebuffer
|
||||
glIsBuffer
|
||||
glIsEnabled
|
||||
glIsEnablediEXT
|
||||
glIsFramebuffer
|
||||
glIsProgram
|
||||
glIsProgramPipeline
|
||||
glIsQuery
|
||||
glIsRenderbuffer
|
||||
glIsSampler
|
||||
glIsShader
|
||||
glIsSync
|
||||
glIsTexture
|
||||
glIsTransformFeedback
|
||||
glIsVertexArray
|
||||
glIsVertexArrayOES
|
||||
glLineWidth
|
||||
glLinkProgram
|
||||
glMapBufferOES
|
||||
glMapBufferRange
|
||||
glMemoryBarrier
|
||||
glMemoryBarrierByRegion
|
||||
glMinSampleShadingOES
|
||||
glObjectLabelKHR
|
||||
glObjectPtrLabelKHR
|
||||
glPatchParameteriEXT
|
||||
glPauseTransformFeedback
|
||||
glPixelStorei
|
||||
glPolygonOffset
|
||||
glPopDebugGroupKHR
|
||||
glPrimitiveBoundingBoxEXT
|
||||
glProgramBinary
|
||||
glProgramBinaryOES
|
||||
glProgramParameteri
|
||||
glProgramUniform1f
|
||||
glProgramUniform1fv
|
||||
glProgramUniform1i
|
||||
glProgramUniform1iv
|
||||
glProgramUniform1ui
|
||||
glProgramUniform1uiv
|
||||
glProgramUniform2f
|
||||
glProgramUniform2fv
|
||||
glProgramUniform2i
|
||||
glProgramUniform2iv
|
||||
glProgramUniform2ui
|
||||
glProgramUniform2uiv
|
||||
glProgramUniform3f
|
||||
glProgramUniform3fv
|
||||
glProgramUniform3i
|
||||
glProgramUniform3iv
|
||||
glProgramUniform3ui
|
||||
glProgramUniform3uiv
|
||||
glProgramUniform4f
|
||||
glProgramUniform4fv
|
||||
glProgramUniform4i
|
||||
glProgramUniform4iv
|
||||
glProgramUniform4ui
|
||||
glProgramUniform4uiv
|
||||
glProgramUniformMatrix2fv
|
||||
glProgramUniformMatrix2x3fv
|
||||
glProgramUniformMatrix2x4fv
|
||||
glProgramUniformMatrix3fv
|
||||
glProgramUniformMatrix3x2fv
|
||||
glProgramUniformMatrix3x4fv
|
||||
glProgramUniformMatrix4fv
|
||||
glProgramUniformMatrix4x2fv
|
||||
glProgramUniformMatrix4x3fv
|
||||
glPushDebugGroupKHR
|
||||
glReadBuffer
|
||||
glReadPixels
|
||||
glReleaseShaderCompiler
|
||||
glRenderbufferStorage
|
||||
glRenderbufferStorageMultisample
|
||||
glResumeTransformFeedback
|
||||
glSampleCoverage
|
||||
glSampleMaski
|
||||
glSamplerParameterIivEXT
|
||||
glSamplerParameterIuivEXT
|
||||
glSamplerParameterf
|
||||
glSamplerParameterfv
|
||||
glSamplerParameteri
|
||||
glSamplerParameteriv
|
||||
glScissor
|
||||
glShaderBinary
|
||||
glShaderSource
|
||||
glStencilFunc
|
||||
glStencilFuncSeparate
|
||||
glStencilMask
|
||||
glStencilMaskSeparate
|
||||
glStencilOp
|
||||
glStencilOpSeparate
|
||||
glTexBufferEXT
|
||||
glTexBufferRangeEXT
|
||||
glTexImage2D
|
||||
glTexImage3D
|
||||
glTexImage3DOES
|
||||
glTexParameterIivEXT
|
||||
glTexParameterIuivEXT
|
||||
glTexParameterf
|
||||
glTexParameterfv
|
||||
glTexParameteri
|
||||
glTexParameteriv
|
||||
glTexStorage2D
|
||||
glTexStorage2DMultisample
|
||||
glTexStorage3D
|
||||
glTexStorage3DMultisampleOES
|
||||
glTexSubImage2D
|
||||
glTexSubImage3D
|
||||
glTexSubImage3DOES
|
||||
glTransformFeedbackVaryings
|
||||
glUniform1f
|
||||
glUniform1fv
|
||||
glUniform1i
|
||||
glUniform1iv
|
||||
glUniform1ui
|
||||
glUniform1uiv
|
||||
glUniform2f
|
||||
glUniform2fv
|
||||
glUniform2i
|
||||
glUniform2iv
|
||||
glUniform2ui
|
||||
glUniform2uiv
|
||||
glUniform3f
|
||||
glUniform3fv
|
||||
glUniform3i
|
||||
glUniform3iv
|
||||
glUniform3ui
|
||||
glUniform3uiv
|
||||
glUniform4f
|
||||
glUniform4fv
|
||||
glUniform4i
|
||||
glUniform4iv
|
||||
glUniform4ui
|
||||
glUniform4uiv
|
||||
glUniformBlockBinding
|
||||
glUniformMatrix2fv
|
||||
glUniformMatrix2x3fv
|
||||
glUniformMatrix2x4fv
|
||||
glUniformMatrix3fv
|
||||
glUniformMatrix3x2fv
|
||||
glUniformMatrix3x4fv
|
||||
glUniformMatrix4fv
|
||||
glUniformMatrix4x2fv
|
||||
glUniformMatrix4x3fv
|
||||
glUnmapBuffer
|
||||
glUnmapBufferOES
|
||||
glUseProgram
|
||||
glUseProgramStages
|
||||
glValidateProgram
|
||||
glValidateProgramPipeline
|
||||
glVertexAttrib1f
|
||||
glVertexAttrib1fv
|
||||
glVertexAttrib2f
|
||||
glVertexAttrib2fv
|
||||
glVertexAttrib3f
|
||||
glVertexAttrib3fv
|
||||
glVertexAttrib4f
|
||||
glVertexAttrib4fv
|
||||
glVertexAttribBinding
|
||||
glVertexAttribDivisor
|
||||
glVertexAttribFormat
|
||||
glVertexAttribI4i
|
||||
glVertexAttribI4iv
|
||||
glVertexAttribI4ui
|
||||
glVertexAttribI4uiv
|
||||
glVertexAttribIFormat
|
||||
glVertexAttribIPointer
|
||||
glVertexAttribPointer
|
||||
glVertexBindingDivisor
|
||||
glViewport
|
||||
glWaitSync
|
||||
@@ -1,367 +0,0 @@
|
||||
glActiveShaderProgram
|
||||
glActiveTexture
|
||||
glAttachShader
|
||||
glBeginQuery
|
||||
glBeginTransformFeedback
|
||||
glBindAttribLocation
|
||||
glBindBuffer
|
||||
glBindBufferBase
|
||||
glBindBufferRange
|
||||
glBindFramebuffer
|
||||
glBindImageTexture
|
||||
glBindProgramPipeline
|
||||
glBindRenderbuffer
|
||||
glBindSampler
|
||||
glBindTexture
|
||||
glBindTransformFeedback
|
||||
glBindVertexArray
|
||||
glBindVertexArrayOES
|
||||
glBindVertexBuffer
|
||||
glBlendBarrierKHR
|
||||
glBlendColor
|
||||
glBlendEquation
|
||||
glBlendEquationSeparate
|
||||
glBlendEquationSeparateiEXT
|
||||
glBlendEquationiEXT
|
||||
glBlendFunc
|
||||
glBlendFuncSeparate
|
||||
glBlendFuncSeparateiEXT
|
||||
glBlendFunciEXT
|
||||
glBlitFramebuffer
|
||||
glBufferData
|
||||
glBufferSubData
|
||||
glCheckFramebufferStatus
|
||||
glClear
|
||||
glClearBufferfi
|
||||
glClearBufferfv
|
||||
glClearBufferiv
|
||||
glClearBufferuiv
|
||||
glClearColor
|
||||
glClearDepthf
|
||||
glClearStencil
|
||||
glClientWaitSync
|
||||
glColorMask
|
||||
glColorMaskiEXT
|
||||
glCompileShader
|
||||
glCompressedTexImage2D
|
||||
glCompressedTexImage3D
|
||||
glCompressedTexImage3DOES
|
||||
glCompressedTexSubImage2D
|
||||
glCompressedTexSubImage3D
|
||||
glCompressedTexSubImage3DOES
|
||||
glCopyBufferSubData
|
||||
glCopyImageSubDataEXT
|
||||
glCopyTexImage2D
|
||||
glCopyTexSubImage2D
|
||||
glCopyTexSubImage3D
|
||||
glCopyTexSubImage3DOES
|
||||
glCreateProgram
|
||||
glCreateShader
|
||||
glCreateShaderProgramv
|
||||
glCullFace
|
||||
glDebugMessageCallbackKHR
|
||||
glDebugMessageControlKHR
|
||||
glDebugMessageInsertKHR
|
||||
glDeleteBuffers
|
||||
glDeleteFramebuffers
|
||||
glDeleteProgram
|
||||
glDeleteProgramPipelines
|
||||
glDeleteQueries
|
||||
glDeleteRenderbuffers
|
||||
glDeleteSamplers
|
||||
glDeleteShader
|
||||
glDeleteSync
|
||||
glDeleteTextures
|
||||
glDeleteTransformFeedbacks
|
||||
glDeleteVertexArrays
|
||||
glDeleteVertexArraysOES
|
||||
glDepthFunc
|
||||
glDepthMask
|
||||
glDepthRangef
|
||||
glDetachShader
|
||||
glDisable
|
||||
glDisableVertexAttribArray
|
||||
glDisableiEXT
|
||||
glDispatchCompute
|
||||
glDispatchComputeIndirect
|
||||
glDrawArrays
|
||||
glDrawArraysIndirect
|
||||
glDrawArraysInstanced
|
||||
glDrawBuffers
|
||||
glDrawElements
|
||||
glDrawElementsIndirect
|
||||
glDrawElementsInstanced
|
||||
glDrawRangeElements
|
||||
glEGLImageTargetRenderbufferStorageOES
|
||||
glEGLImageTargetTexture2DOES
|
||||
glEnable
|
||||
glEnableVertexAttribArray
|
||||
glEnableiEXT
|
||||
glEndQuery
|
||||
glEndTransformFeedback
|
||||
glFenceSync
|
||||
glFinish
|
||||
glFlush
|
||||
glFlushMappedBufferRange
|
||||
glFramebufferParameteri
|
||||
glFramebufferRenderbuffer
|
||||
glFramebufferTexture2D
|
||||
glFramebufferTexture3DOES
|
||||
glFramebufferTextureEXT
|
||||
glFramebufferTextureLayer
|
||||
glFrontFace
|
||||
glGenBuffers
|
||||
glGenFramebuffers
|
||||
glGenProgramPipelines
|
||||
glGenQueries
|
||||
glGenRenderbuffers
|
||||
glGenSamplers
|
||||
glGenTextures
|
||||
glGenTransformFeedbacks
|
||||
glGenVertexArrays
|
||||
glGenVertexArraysOES
|
||||
glGenerateMipmap
|
||||
glGetActiveAttrib
|
||||
glGetActiveUniform
|
||||
glGetActiveUniformBlockName
|
||||
glGetActiveUniformBlockiv
|
||||
glGetActiveUniformsiv
|
||||
glGetAttachedShaders
|
||||
glGetAttribLocation
|
||||
glGetBooleani_v
|
||||
glGetBooleanv
|
||||
glGetBufferParameteri64v
|
||||
glGetBufferParameteriv
|
||||
glGetBufferPointerv
|
||||
glGetBufferPointervOES
|
||||
glGetDebugMessageLogKHR
|
||||
glGetError
|
||||
glGetFloatv
|
||||
glGetFragDataLocation
|
||||
glGetFramebufferAttachmentParameteriv
|
||||
glGetFramebufferParameteriv
|
||||
glGetInteger64i_v
|
||||
glGetInteger64v
|
||||
glGetIntegeri_v
|
||||
glGetIntegerv
|
||||
glGetInternalformativ
|
||||
glGetMultisamplefv
|
||||
glGetObjectLabelKHR
|
||||
glGetObjectPtrLabelKHR
|
||||
glGetPointervKHR
|
||||
glGetProgramBinary
|
||||
glGetProgramBinaryOES
|
||||
glGetProgramInfoLog
|
||||
glGetProgramInterfaceiv
|
||||
glGetProgramPipelineInfoLog
|
||||
glGetProgramPipelineiv
|
||||
glGetProgramResourceIndex
|
||||
glGetProgramResourceLocation
|
||||
glGetProgramResourceName
|
||||
glGetProgramResourceiv
|
||||
glGetProgramiv
|
||||
glGetQueryObjectuiv
|
||||
glGetQueryiv
|
||||
glGetRenderbufferParameteriv
|
||||
glGetSamplerParameterIivEXT
|
||||
glGetSamplerParameterIuivEXT
|
||||
glGetSamplerParameterfv
|
||||
glGetSamplerParameteriv
|
||||
glGetShaderInfoLog
|
||||
glGetShaderPrecisionFormat
|
||||
glGetShaderSource
|
||||
glGetShaderiv
|
||||
glGetString
|
||||
glGetStringi
|
||||
glGetSynciv
|
||||
glGetTexLevelParameterfv
|
||||
glGetTexLevelParameteriv
|
||||
glGetTexParameterIivEXT
|
||||
glGetTexParameterIuivEXT
|
||||
glGetTexParameterfv
|
||||
glGetTexParameteriv
|
||||
glGetTransformFeedbackVarying
|
||||
glGetUniformBlockIndex
|
||||
glGetUniformIndices
|
||||
glGetUniformLocation
|
||||
glGetUniformfv
|
||||
glGetUniformiv
|
||||
glGetUniformuiv
|
||||
glGetVertexAttribIiv
|
||||
glGetVertexAttribIuiv
|
||||
glGetVertexAttribPointerv
|
||||
glGetVertexAttribfv
|
||||
glGetVertexAttribiv
|
||||
glHint
|
||||
glInvalidateFramebuffer
|
||||
glInvalidateSubFramebuffer
|
||||
glIsBuffer
|
||||
glIsEnabled
|
||||
glIsEnablediEXT
|
||||
glIsFramebuffer
|
||||
glIsProgram
|
||||
glIsProgramPipeline
|
||||
glIsQuery
|
||||
glIsRenderbuffer
|
||||
glIsSampler
|
||||
glIsShader
|
||||
glIsSync
|
||||
glIsTexture
|
||||
glIsTransformFeedback
|
||||
glIsVertexArray
|
||||
glIsVertexArrayOES
|
||||
glLineWidth
|
||||
glLinkProgram
|
||||
glMapBufferOES
|
||||
glMapBufferRange
|
||||
glMemoryBarrier
|
||||
glMemoryBarrierByRegion
|
||||
glMinSampleShadingOES
|
||||
glObjectLabelKHR
|
||||
glObjectPtrLabelKHR
|
||||
glPatchParameteriEXT
|
||||
glPauseTransformFeedback
|
||||
glPixelStorei
|
||||
glPolygonOffset
|
||||
glPopDebugGroupKHR
|
||||
glPrimitiveBoundingBoxEXT
|
||||
glProgramBinary
|
||||
glProgramBinaryOES
|
||||
glProgramParameteri
|
||||
glProgramUniform1f
|
||||
glProgramUniform1fv
|
||||
glProgramUniform1i
|
||||
glProgramUniform1iv
|
||||
glProgramUniform1ui
|
||||
glProgramUniform1uiv
|
||||
glProgramUniform2f
|
||||
glProgramUniform2fv
|
||||
glProgramUniform2i
|
||||
glProgramUniform2iv
|
||||
glProgramUniform2ui
|
||||
glProgramUniform2uiv
|
||||
glProgramUniform3f
|
||||
glProgramUniform3fv
|
||||
glProgramUniform3i
|
||||
glProgramUniform3iv
|
||||
glProgramUniform3ui
|
||||
glProgramUniform3uiv
|
||||
glProgramUniform4f
|
||||
glProgramUniform4fv
|
||||
glProgramUniform4i
|
||||
glProgramUniform4iv
|
||||
glProgramUniform4ui
|
||||
glProgramUniform4uiv
|
||||
glProgramUniformMatrix2fv
|
||||
glProgramUniformMatrix2x3fv
|
||||
glProgramUniformMatrix2x4fv
|
||||
glProgramUniformMatrix3fv
|
||||
glProgramUniformMatrix3x2fv
|
||||
glProgramUniformMatrix3x4fv
|
||||
glProgramUniformMatrix4fv
|
||||
glProgramUniformMatrix4x2fv
|
||||
glProgramUniformMatrix4x3fv
|
||||
glPushDebugGroupKHR
|
||||
glReadBuffer
|
||||
glReadPixels
|
||||
glReleaseShaderCompiler
|
||||
glRenderbufferStorage
|
||||
glRenderbufferStorageMultisample
|
||||
glResumeTransformFeedback
|
||||
glSampleCoverage
|
||||
glSampleMaski
|
||||
glSamplerParameterIivEXT
|
||||
glSamplerParameterIuivEXT
|
||||
glSamplerParameterf
|
||||
glSamplerParameterfv
|
||||
glSamplerParameteri
|
||||
glSamplerParameteriv
|
||||
glScissor
|
||||
glShaderBinary
|
||||
glShaderSource
|
||||
glStencilFunc
|
||||
glStencilFuncSeparate
|
||||
glStencilMask
|
||||
glStencilMaskSeparate
|
||||
glStencilOp
|
||||
glStencilOpSeparate
|
||||
glTexBufferEXT
|
||||
glTexBufferRangeEXT
|
||||
glTexImage2D
|
||||
glTexImage3D
|
||||
glTexImage3DOES
|
||||
glTexParameterIivEXT
|
||||
glTexParameterIuivEXT
|
||||
glTexParameterf
|
||||
glTexParameterfv
|
||||
glTexParameteri
|
||||
glTexParameteriv
|
||||
glTexStorage2D
|
||||
glTexStorage2DMultisample
|
||||
glTexStorage3D
|
||||
glTexStorage3DMultisampleOES
|
||||
glTexSubImage2D
|
||||
glTexSubImage3D
|
||||
glTexSubImage3DOES
|
||||
glTransformFeedbackVaryings
|
||||
glUniform1f
|
||||
glUniform1fv
|
||||
glUniform1i
|
||||
glUniform1iv
|
||||
glUniform1ui
|
||||
glUniform1uiv
|
||||
glUniform2f
|
||||
glUniform2fv
|
||||
glUniform2i
|
||||
glUniform2iv
|
||||
glUniform2ui
|
||||
glUniform2uiv
|
||||
glUniform3f
|
||||
glUniform3fv
|
||||
glUniform3i
|
||||
glUniform3iv
|
||||
glUniform3ui
|
||||
glUniform3uiv
|
||||
glUniform4f
|
||||
glUniform4fv
|
||||
glUniform4i
|
||||
glUniform4iv
|
||||
glUniform4ui
|
||||
glUniform4uiv
|
||||
glUniformBlockBinding
|
||||
glUniformMatrix2fv
|
||||
glUniformMatrix2x3fv
|
||||
glUniformMatrix2x4fv
|
||||
glUniformMatrix3fv
|
||||
glUniformMatrix3x2fv
|
||||
glUniformMatrix3x4fv
|
||||
glUniformMatrix4fv
|
||||
glUniformMatrix4x2fv
|
||||
glUniformMatrix4x3fv
|
||||
glUnmapBuffer
|
||||
glUnmapBufferOES
|
||||
glUseProgram
|
||||
glUseProgramStages
|
||||
glValidateProgram
|
||||
glValidateProgramPipeline
|
||||
glVertexAttrib1f
|
||||
glVertexAttrib1fv
|
||||
glVertexAttrib2f
|
||||
glVertexAttrib2fv
|
||||
glVertexAttrib3f
|
||||
glVertexAttrib3fv
|
||||
glVertexAttrib4f
|
||||
glVertexAttrib4fv
|
||||
glVertexAttribBinding
|
||||
glVertexAttribDivisor
|
||||
glVertexAttribFormat
|
||||
glVertexAttribI4i
|
||||
glVertexAttribI4iv
|
||||
glVertexAttribI4ui
|
||||
glVertexAttribI4uiv
|
||||
glVertexAttribIFormat
|
||||
glVertexAttribIPointer
|
||||
glVertexAttribPointer
|
||||
glVertexBindingDivisor
|
||||
glViewport
|
||||
glWaitSync
|
||||
@@ -1,367 +0,0 @@
|
||||
glActiveShaderProgram
|
||||
glActiveTexture
|
||||
glAttachShader
|
||||
glBeginQuery
|
||||
glBeginTransformFeedback
|
||||
glBindAttribLocation
|
||||
glBindBuffer
|
||||
glBindBufferBase
|
||||
glBindBufferRange
|
||||
glBindFramebuffer
|
||||
glBindImageTexture
|
||||
glBindProgramPipeline
|
||||
glBindRenderbuffer
|
||||
glBindSampler
|
||||
glBindTexture
|
||||
glBindTransformFeedback
|
||||
glBindVertexArray
|
||||
glBindVertexArrayOES
|
||||
glBindVertexBuffer
|
||||
glBlendBarrierKHR
|
||||
glBlendColor
|
||||
glBlendEquation
|
||||
glBlendEquationSeparate
|
||||
glBlendEquationSeparateiEXT
|
||||
glBlendEquationiEXT
|
||||
glBlendFunc
|
||||
glBlendFuncSeparate
|
||||
glBlendFuncSeparateiEXT
|
||||
glBlendFunciEXT
|
||||
glBlitFramebuffer
|
||||
glBufferData
|
||||
glBufferSubData
|
||||
glCheckFramebufferStatus
|
||||
glClear
|
||||
glClearBufferfi
|
||||
glClearBufferfv
|
||||
glClearBufferiv
|
||||
glClearBufferuiv
|
||||
glClearColor
|
||||
glClearDepthf
|
||||
glClearStencil
|
||||
glClientWaitSync
|
||||
glColorMask
|
||||
glColorMaskiEXT
|
||||
glCompileShader
|
||||
glCompressedTexImage2D
|
||||
glCompressedTexImage3D
|
||||
glCompressedTexImage3DOES
|
||||
glCompressedTexSubImage2D
|
||||
glCompressedTexSubImage3D
|
||||
glCompressedTexSubImage3DOES
|
||||
glCopyBufferSubData
|
||||
glCopyImageSubDataEXT
|
||||
glCopyTexImage2D
|
||||
glCopyTexSubImage2D
|
||||
glCopyTexSubImage3D
|
||||
glCopyTexSubImage3DOES
|
||||
glCreateProgram
|
||||
glCreateShader
|
||||
glCreateShaderProgramv
|
||||
glCullFace
|
||||
glDebugMessageCallbackKHR
|
||||
glDebugMessageControlKHR
|
||||
glDebugMessageInsertKHR
|
||||
glDeleteBuffers
|
||||
glDeleteFramebuffers
|
||||
glDeleteProgram
|
||||
glDeleteProgramPipelines
|
||||
glDeleteQueries
|
||||
glDeleteRenderbuffers
|
||||
glDeleteSamplers
|
||||
glDeleteShader
|
||||
glDeleteSync
|
||||
glDeleteTextures
|
||||
glDeleteTransformFeedbacks
|
||||
glDeleteVertexArrays
|
||||
glDeleteVertexArraysOES
|
||||
glDepthFunc
|
||||
glDepthMask
|
||||
glDepthRangef
|
||||
glDetachShader
|
||||
glDisable
|
||||
glDisableVertexAttribArray
|
||||
glDisableiEXT
|
||||
glDispatchCompute
|
||||
glDispatchComputeIndirect
|
||||
glDrawArrays
|
||||
glDrawArraysIndirect
|
||||
glDrawArraysInstanced
|
||||
glDrawBuffers
|
||||
glDrawElements
|
||||
glDrawElementsIndirect
|
||||
glDrawElementsInstanced
|
||||
glDrawRangeElements
|
||||
glEGLImageTargetRenderbufferStorageOES
|
||||
glEGLImageTargetTexture2DOES
|
||||
glEnable
|
||||
glEnableVertexAttribArray
|
||||
glEnableiEXT
|
||||
glEndQuery
|
||||
glEndTransformFeedback
|
||||
glFenceSync
|
||||
glFinish
|
||||
glFlush
|
||||
glFlushMappedBufferRange
|
||||
glFramebufferParameteri
|
||||
glFramebufferRenderbuffer
|
||||
glFramebufferTexture2D
|
||||
glFramebufferTexture3DOES
|
||||
glFramebufferTextureEXT
|
||||
glFramebufferTextureLayer
|
||||
glFrontFace
|
||||
glGenBuffers
|
||||
glGenFramebuffers
|
||||
glGenProgramPipelines
|
||||
glGenQueries
|
||||
glGenRenderbuffers
|
||||
glGenSamplers
|
||||
glGenTextures
|
||||
glGenTransformFeedbacks
|
||||
glGenVertexArrays
|
||||
glGenVertexArraysOES
|
||||
glGenerateMipmap
|
||||
glGetActiveAttrib
|
||||
glGetActiveUniform
|
||||
glGetActiveUniformBlockName
|
||||
glGetActiveUniformBlockiv
|
||||
glGetActiveUniformsiv
|
||||
glGetAttachedShaders
|
||||
glGetAttribLocation
|
||||
glGetBooleani_v
|
||||
glGetBooleanv
|
||||
glGetBufferParameteri64v
|
||||
glGetBufferParameteriv
|
||||
glGetBufferPointerv
|
||||
glGetBufferPointervOES
|
||||
glGetDebugMessageLogKHR
|
||||
glGetError
|
||||
glGetFloatv
|
||||
glGetFragDataLocation
|
||||
glGetFramebufferAttachmentParameteriv
|
||||
glGetFramebufferParameteriv
|
||||
glGetInteger64i_v
|
||||
glGetInteger64v
|
||||
glGetIntegeri_v
|
||||
glGetIntegerv
|
||||
glGetInternalformativ
|
||||
glGetMultisamplefv
|
||||
glGetObjectLabelKHR
|
||||
glGetObjectPtrLabelKHR
|
||||
glGetPointervKHR
|
||||
glGetProgramBinary
|
||||
glGetProgramBinaryOES
|
||||
glGetProgramInfoLog
|
||||
glGetProgramInterfaceiv
|
||||
glGetProgramPipelineInfoLog
|
||||
glGetProgramPipelineiv
|
||||
glGetProgramResourceIndex
|
||||
glGetProgramResourceLocation
|
||||
glGetProgramResourceName
|
||||
glGetProgramResourceiv
|
||||
glGetProgramiv
|
||||
glGetQueryObjectuiv
|
||||
glGetQueryiv
|
||||
glGetRenderbufferParameteriv
|
||||
glGetSamplerParameterIivEXT
|
||||
glGetSamplerParameterIuivEXT
|
||||
glGetSamplerParameterfv
|
||||
glGetSamplerParameteriv
|
||||
glGetShaderInfoLog
|
||||
glGetShaderPrecisionFormat
|
||||
glGetShaderSource
|
||||
glGetShaderiv
|
||||
glGetString
|
||||
glGetStringi
|
||||
glGetSynciv
|
||||
glGetTexLevelParameterfv
|
||||
glGetTexLevelParameteriv
|
||||
glGetTexParameterIivEXT
|
||||
glGetTexParameterIuivEXT
|
||||
glGetTexParameterfv
|
||||
glGetTexParameteriv
|
||||
glGetTransformFeedbackVarying
|
||||
glGetUniformBlockIndex
|
||||
glGetUniformIndices
|
||||
glGetUniformLocation
|
||||
glGetUniformfv
|
||||
glGetUniformiv
|
||||
glGetUniformuiv
|
||||
glGetVertexAttribIiv
|
||||
glGetVertexAttribIuiv
|
||||
glGetVertexAttribPointerv
|
||||
glGetVertexAttribfv
|
||||
glGetVertexAttribiv
|
||||
glHint
|
||||
glInvalidateFramebuffer
|
||||
glInvalidateSubFramebuffer
|
||||
glIsBuffer
|
||||
glIsEnabled
|
||||
glIsEnablediEXT
|
||||
glIsFramebuffer
|
||||
glIsProgram
|
||||
glIsProgramPipeline
|
||||
glIsQuery
|
||||
glIsRenderbuffer
|
||||
glIsSampler
|
||||
glIsShader
|
||||
glIsSync
|
||||
glIsTexture
|
||||
glIsTransformFeedback
|
||||
glIsVertexArray
|
||||
glIsVertexArrayOES
|
||||
glLineWidth
|
||||
glLinkProgram
|
||||
glMapBufferOES
|
||||
glMapBufferRange
|
||||
glMemoryBarrier
|
||||
glMemoryBarrierByRegion
|
||||
glMinSampleShadingOES
|
||||
glObjectLabelKHR
|
||||
glObjectPtrLabelKHR
|
||||
glPatchParameteriEXT
|
||||
glPauseTransformFeedback
|
||||
glPixelStorei
|
||||
glPolygonOffset
|
||||
glPopDebugGroupKHR
|
||||
glPrimitiveBoundingBoxEXT
|
||||
glProgramBinary
|
||||
glProgramBinaryOES
|
||||
glProgramParameteri
|
||||
glProgramUniform1f
|
||||
glProgramUniform1fv
|
||||
glProgramUniform1i
|
||||
glProgramUniform1iv
|
||||
glProgramUniform1ui
|
||||
glProgramUniform1uiv
|
||||
glProgramUniform2f
|
||||
glProgramUniform2fv
|
||||
glProgramUniform2i
|
||||
glProgramUniform2iv
|
||||
glProgramUniform2ui
|
||||
glProgramUniform2uiv
|
||||
glProgramUniform3f
|
||||
glProgramUniform3fv
|
||||
glProgramUniform3i
|
||||
glProgramUniform3iv
|
||||
glProgramUniform3ui
|
||||
glProgramUniform3uiv
|
||||
glProgramUniform4f
|
||||
glProgramUniform4fv
|
||||
glProgramUniform4i
|
||||
glProgramUniform4iv
|
||||
glProgramUniform4ui
|
||||
glProgramUniform4uiv
|
||||
glProgramUniformMatrix2fv
|
||||
glProgramUniformMatrix2x3fv
|
||||
glProgramUniformMatrix2x4fv
|
||||
glProgramUniformMatrix3fv
|
||||
glProgramUniformMatrix3x2fv
|
||||
glProgramUniformMatrix3x4fv
|
||||
glProgramUniformMatrix4fv
|
||||
glProgramUniformMatrix4x2fv
|
||||
glProgramUniformMatrix4x3fv
|
||||
glPushDebugGroupKHR
|
||||
glReadBuffer
|
||||
glReadPixels
|
||||
glReleaseShaderCompiler
|
||||
glRenderbufferStorage
|
||||
glRenderbufferStorageMultisample
|
||||
glResumeTransformFeedback
|
||||
glSampleCoverage
|
||||
glSampleMaski
|
||||
glSamplerParameterIivEXT
|
||||
glSamplerParameterIuivEXT
|
||||
glSamplerParameterf
|
||||
glSamplerParameterfv
|
||||
glSamplerParameteri
|
||||
glSamplerParameteriv
|
||||
glScissor
|
||||
glShaderBinary
|
||||
glShaderSource
|
||||
glStencilFunc
|
||||
glStencilFuncSeparate
|
||||
glStencilMask
|
||||
glStencilMaskSeparate
|
||||
glStencilOp
|
||||
glStencilOpSeparate
|
||||
glTexBufferEXT
|
||||
glTexBufferRangeEXT
|
||||
glTexImage2D
|
||||
glTexImage3D
|
||||
glTexImage3DOES
|
||||
glTexParameterIivEXT
|
||||
glTexParameterIuivEXT
|
||||
glTexParameterf
|
||||
glTexParameterfv
|
||||
glTexParameteri
|
||||
glTexParameteriv
|
||||
glTexStorage2D
|
||||
glTexStorage2DMultisample
|
||||
glTexStorage3D
|
||||
glTexStorage3DMultisampleOES
|
||||
glTexSubImage2D
|
||||
glTexSubImage3D
|
||||
glTexSubImage3DOES
|
||||
glTransformFeedbackVaryings
|
||||
glUniform1f
|
||||
glUniform1fv
|
||||
glUniform1i
|
||||
glUniform1iv
|
||||
glUniform1ui
|
||||
glUniform1uiv
|
||||
glUniform2f
|
||||
glUniform2fv
|
||||
glUniform2i
|
||||
glUniform2iv
|
||||
glUniform2ui
|
||||
glUniform2uiv
|
||||
glUniform3f
|
||||
glUniform3fv
|
||||
glUniform3i
|
||||
glUniform3iv
|
||||
glUniform3ui
|
||||
glUniform3uiv
|
||||
glUniform4f
|
||||
glUniform4fv
|
||||
glUniform4i
|
||||
glUniform4iv
|
||||
glUniform4ui
|
||||
glUniform4uiv
|
||||
glUniformBlockBinding
|
||||
glUniformMatrix2fv
|
||||
glUniformMatrix2x3fv
|
||||
glUniformMatrix2x4fv
|
||||
glUniformMatrix3fv
|
||||
glUniformMatrix3x2fv
|
||||
glUniformMatrix3x4fv
|
||||
glUniformMatrix4fv
|
||||
glUniformMatrix4x2fv
|
||||
glUniformMatrix4x3fv
|
||||
glUnmapBuffer
|
||||
glUnmapBufferOES
|
||||
glUseProgram
|
||||
glUseProgramStages
|
||||
glValidateProgram
|
||||
glValidateProgramPipeline
|
||||
glVertexAttrib1f
|
||||
glVertexAttrib1fv
|
||||
glVertexAttrib2f
|
||||
glVertexAttrib2fv
|
||||
glVertexAttrib3f
|
||||
glVertexAttrib3fv
|
||||
glVertexAttrib4f
|
||||
glVertexAttrib4fv
|
||||
glVertexAttribBinding
|
||||
glVertexAttribDivisor
|
||||
glVertexAttribFormat
|
||||
glVertexAttribI4i
|
||||
glVertexAttribI4iv
|
||||
glVertexAttribI4ui
|
||||
glVertexAttribI4uiv
|
||||
glVertexAttribIFormat
|
||||
glVertexAttribIPointer
|
||||
glVertexAttribPointer
|
||||
glVertexBindingDivisor
|
||||
glViewport
|
||||
glWaitSync
|
||||
@@ -1,367 +0,0 @@
|
||||
glActiveShaderProgram
|
||||
glActiveTexture
|
||||
glAttachShader
|
||||
glBeginQuery
|
||||
glBeginTransformFeedback
|
||||
glBindAttribLocation
|
||||
glBindBuffer
|
||||
glBindBufferBase
|
||||
glBindBufferRange
|
||||
glBindFramebuffer
|
||||
glBindImageTexture
|
||||
glBindProgramPipeline
|
||||
glBindRenderbuffer
|
||||
glBindSampler
|
||||
glBindTexture
|
||||
glBindTransformFeedback
|
||||
glBindVertexArray
|
||||
glBindVertexArrayOES
|
||||
glBindVertexBuffer
|
||||
glBlendBarrierKHR
|
||||
glBlendColor
|
||||
glBlendEquation
|
||||
glBlendEquationSeparate
|
||||
glBlendEquationSeparateiEXT
|
||||
glBlendEquationiEXT
|
||||
glBlendFunc
|
||||
glBlendFuncSeparate
|
||||
glBlendFuncSeparateiEXT
|
||||
glBlendFunciEXT
|
||||
glBlitFramebuffer
|
||||
glBufferData
|
||||
glBufferSubData
|
||||
glCheckFramebufferStatus
|
||||
glClear
|
||||
glClearBufferfi
|
||||
glClearBufferfv
|
||||
glClearBufferiv
|
||||
glClearBufferuiv
|
||||
glClearColor
|
||||
glClearDepthf
|
||||
glClearStencil
|
||||
glClientWaitSync
|
||||
glColorMask
|
||||
glColorMaskiEXT
|
||||
glCompileShader
|
||||
glCompressedTexImage2D
|
||||
glCompressedTexImage3D
|
||||
glCompressedTexImage3DOES
|
||||
glCompressedTexSubImage2D
|
||||
glCompressedTexSubImage3D
|
||||
glCompressedTexSubImage3DOES
|
||||
glCopyBufferSubData
|
||||
glCopyImageSubDataEXT
|
||||
glCopyTexImage2D
|
||||
glCopyTexSubImage2D
|
||||
glCopyTexSubImage3D
|
||||
glCopyTexSubImage3DOES
|
||||
glCreateProgram
|
||||
glCreateShader
|
||||
glCreateShaderProgramv
|
||||
glCullFace
|
||||
glDebugMessageCallbackKHR
|
||||
glDebugMessageControlKHR
|
||||
glDebugMessageInsertKHR
|
||||
glDeleteBuffers
|
||||
glDeleteFramebuffers
|
||||
glDeleteProgram
|
||||
glDeleteProgramPipelines
|
||||
glDeleteQueries
|
||||
glDeleteRenderbuffers
|
||||
glDeleteSamplers
|
||||
glDeleteShader
|
||||
glDeleteSync
|
||||
glDeleteTextures
|
||||
glDeleteTransformFeedbacks
|
||||
glDeleteVertexArrays
|
||||
glDeleteVertexArraysOES
|
||||
glDepthFunc
|
||||
glDepthMask
|
||||
glDepthRangef
|
||||
glDetachShader
|
||||
glDisable
|
||||
glDisableVertexAttribArray
|
||||
glDisableiEXT
|
||||
glDispatchCompute
|
||||
glDispatchComputeIndirect
|
||||
glDrawArrays
|
||||
glDrawArraysIndirect
|
||||
glDrawArraysInstanced
|
||||
glDrawBuffers
|
||||
glDrawElements
|
||||
glDrawElementsIndirect
|
||||
glDrawElementsInstanced
|
||||
glDrawRangeElements
|
||||
glEGLImageTargetRenderbufferStorageOES
|
||||
glEGLImageTargetTexture2DOES
|
||||
glEnable
|
||||
glEnableVertexAttribArray
|
||||
glEnableiEXT
|
||||
glEndQuery
|
||||
glEndTransformFeedback
|
||||
glFenceSync
|
||||
glFinish
|
||||
glFlush
|
||||
glFlushMappedBufferRange
|
||||
glFramebufferParameteri
|
||||
glFramebufferRenderbuffer
|
||||
glFramebufferTexture2D
|
||||
glFramebufferTexture3DOES
|
||||
glFramebufferTextureEXT
|
||||
glFramebufferTextureLayer
|
||||
glFrontFace
|
||||
glGenBuffers
|
||||
glGenFramebuffers
|
||||
glGenProgramPipelines
|
||||
glGenQueries
|
||||
glGenRenderbuffers
|
||||
glGenSamplers
|
||||
glGenTextures
|
||||
glGenTransformFeedbacks
|
||||
glGenVertexArrays
|
||||
glGenVertexArraysOES
|
||||
glGenerateMipmap
|
||||
glGetActiveAttrib
|
||||
glGetActiveUniform
|
||||
glGetActiveUniformBlockName
|
||||
glGetActiveUniformBlockiv
|
||||
glGetActiveUniformsiv
|
||||
glGetAttachedShaders
|
||||
glGetAttribLocation
|
||||
glGetBooleani_v
|
||||
glGetBooleanv
|
||||
glGetBufferParameteri64v
|
||||
glGetBufferParameteriv
|
||||
glGetBufferPointerv
|
||||
glGetBufferPointervOES
|
||||
glGetDebugMessageLogKHR
|
||||
glGetError
|
||||
glGetFloatv
|
||||
glGetFragDataLocation
|
||||
glGetFramebufferAttachmentParameteriv
|
||||
glGetFramebufferParameteriv
|
||||
glGetInteger64i_v
|
||||
glGetInteger64v
|
||||
glGetIntegeri_v
|
||||
glGetIntegerv
|
||||
glGetInternalformativ
|
||||
glGetMultisamplefv
|
||||
glGetObjectLabelKHR
|
||||
glGetObjectPtrLabelKHR
|
||||
glGetPointervKHR
|
||||
glGetProgramBinary
|
||||
glGetProgramBinaryOES
|
||||
glGetProgramInfoLog
|
||||
glGetProgramInterfaceiv
|
||||
glGetProgramPipelineInfoLog
|
||||
glGetProgramPipelineiv
|
||||
glGetProgramResourceIndex
|
||||
glGetProgramResourceLocation
|
||||
glGetProgramResourceName
|
||||
glGetProgramResourceiv
|
||||
glGetProgramiv
|
||||
glGetQueryObjectuiv
|
||||
glGetQueryiv
|
||||
glGetRenderbufferParameteriv
|
||||
glGetSamplerParameterIivEXT
|
||||
glGetSamplerParameterIuivEXT
|
||||
glGetSamplerParameterfv
|
||||
glGetSamplerParameteriv
|
||||
glGetShaderInfoLog
|
||||
glGetShaderPrecisionFormat
|
||||
glGetShaderSource
|
||||
glGetShaderiv
|
||||
glGetString
|
||||
glGetStringi
|
||||
glGetSynciv
|
||||
glGetTexLevelParameterfv
|
||||
glGetTexLevelParameteriv
|
||||
glGetTexParameterIivEXT
|
||||
glGetTexParameterIuivEXT
|
||||
glGetTexParameterfv
|
||||
glGetTexParameteriv
|
||||
glGetTransformFeedbackVarying
|
||||
glGetUniformBlockIndex
|
||||
glGetUniformIndices
|
||||
glGetUniformLocation
|
||||
glGetUniformfv
|
||||
glGetUniformiv
|
||||
glGetUniformuiv
|
||||
glGetVertexAttribIiv
|
||||
glGetVertexAttribIuiv
|
||||
glGetVertexAttribPointerv
|
||||
glGetVertexAttribfv
|
||||
glGetVertexAttribiv
|
||||
glHint
|
||||
glInvalidateFramebuffer
|
||||
glInvalidateSubFramebuffer
|
||||
glIsBuffer
|
||||
glIsEnabled
|
||||
glIsEnablediEXT
|
||||
glIsFramebuffer
|
||||
glIsProgram
|
||||
glIsProgramPipeline
|
||||
glIsQuery
|
||||
glIsRenderbuffer
|
||||
glIsSampler
|
||||
glIsShader
|
||||
glIsSync
|
||||
glIsTexture
|
||||
glIsTransformFeedback
|
||||
glIsVertexArray
|
||||
glIsVertexArrayOES
|
||||
glLineWidth
|
||||
glLinkProgram
|
||||
glMapBufferOES
|
||||
glMapBufferRange
|
||||
glMemoryBarrier
|
||||
glMemoryBarrierByRegion
|
||||
glMinSampleShadingOES
|
||||
glObjectLabelKHR
|
||||
glObjectPtrLabelKHR
|
||||
glPatchParameteriEXT
|
||||
glPauseTransformFeedback
|
||||
glPixelStorei
|
||||
glPolygonOffset
|
||||
glPopDebugGroupKHR
|
||||
glPrimitiveBoundingBoxEXT
|
||||
glProgramBinary
|
||||
glProgramBinaryOES
|
||||
glProgramParameteri
|
||||
glProgramUniform1f
|
||||
glProgramUniform1fv
|
||||
glProgramUniform1i
|
||||
glProgramUniform1iv
|
||||
glProgramUniform1ui
|
||||
glProgramUniform1uiv
|
||||
glProgramUniform2f
|
||||
glProgramUniform2fv
|
||||
glProgramUniform2i
|
||||
glProgramUniform2iv
|
||||
glProgramUniform2ui
|
||||
glProgramUniform2uiv
|
||||
glProgramUniform3f
|
||||
glProgramUniform3fv
|
||||
glProgramUniform3i
|
||||
glProgramUniform3iv
|
||||
glProgramUniform3ui
|
||||
glProgramUniform3uiv
|
||||
glProgramUniform4f
|
||||
glProgramUniform4fv
|
||||
glProgramUniform4i
|
||||
glProgramUniform4iv
|
||||
glProgramUniform4ui
|
||||
glProgramUniform4uiv
|
||||
glProgramUniformMatrix2fv
|
||||
glProgramUniformMatrix2x3fv
|
||||
glProgramUniformMatrix2x4fv
|
||||
glProgramUniformMatrix3fv
|
||||
glProgramUniformMatrix3x2fv
|
||||
glProgramUniformMatrix3x4fv
|
||||
glProgramUniformMatrix4fv
|
||||
glProgramUniformMatrix4x2fv
|
||||
glProgramUniformMatrix4x3fv
|
||||
glPushDebugGroupKHR
|
||||
glReadBuffer
|
||||
glReadPixels
|
||||
glReleaseShaderCompiler
|
||||
glRenderbufferStorage
|
||||
glRenderbufferStorageMultisample
|
||||
glResumeTransformFeedback
|
||||
glSampleCoverage
|
||||
glSampleMaski
|
||||
glSamplerParameterIivEXT
|
||||
glSamplerParameterIuivEXT
|
||||
glSamplerParameterf
|
||||
glSamplerParameterfv
|
||||
glSamplerParameteri
|
||||
glSamplerParameteriv
|
||||
glScissor
|
||||
glShaderBinary
|
||||
glShaderSource
|
||||
glStencilFunc
|
||||
glStencilFuncSeparate
|
||||
glStencilMask
|
||||
glStencilMaskSeparate
|
||||
glStencilOp
|
||||
glStencilOpSeparate
|
||||
glTexBufferEXT
|
||||
glTexBufferRangeEXT
|
||||
glTexImage2D
|
||||
glTexImage3D
|
||||
glTexImage3DOES
|
||||
glTexParameterIivEXT
|
||||
glTexParameterIuivEXT
|
||||
glTexParameterf
|
||||
glTexParameterfv
|
||||
glTexParameteri
|
||||
glTexParameteriv
|
||||
glTexStorage2D
|
||||
glTexStorage2DMultisample
|
||||
glTexStorage3D
|
||||
glTexStorage3DMultisampleOES
|
||||
glTexSubImage2D
|
||||
glTexSubImage3D
|
||||
glTexSubImage3DOES
|
||||
glTransformFeedbackVaryings
|
||||
glUniform1f
|
||||
glUniform1fv
|
||||
glUniform1i
|
||||
glUniform1iv
|
||||
glUniform1ui
|
||||
glUniform1uiv
|
||||
glUniform2f
|
||||
glUniform2fv
|
||||
glUniform2i
|
||||
glUniform2iv
|
||||
glUniform2ui
|
||||
glUniform2uiv
|
||||
glUniform3f
|
||||
glUniform3fv
|
||||
glUniform3i
|
||||
glUniform3iv
|
||||
glUniform3ui
|
||||
glUniform3uiv
|
||||
glUniform4f
|
||||
glUniform4fv
|
||||
glUniform4i
|
||||
glUniform4iv
|
||||
glUniform4ui
|
||||
glUniform4uiv
|
||||
glUniformBlockBinding
|
||||
glUniformMatrix2fv
|
||||
glUniformMatrix2x3fv
|
||||
glUniformMatrix2x4fv
|
||||
glUniformMatrix3fv
|
||||
glUniformMatrix3x2fv
|
||||
glUniformMatrix3x4fv
|
||||
glUniformMatrix4fv
|
||||
glUniformMatrix4x2fv
|
||||
glUniformMatrix4x3fv
|
||||
glUnmapBuffer
|
||||
glUnmapBufferOES
|
||||
glUseProgram
|
||||
glUseProgramStages
|
||||
glValidateProgram
|
||||
glValidateProgramPipeline
|
||||
glVertexAttrib1f
|
||||
glVertexAttrib1fv
|
||||
glVertexAttrib2f
|
||||
glVertexAttrib2fv
|
||||
glVertexAttrib3f
|
||||
glVertexAttrib3fv
|
||||
glVertexAttrib4f
|
||||
glVertexAttrib4fv
|
||||
glVertexAttribBinding
|
||||
glVertexAttribDivisor
|
||||
glVertexAttribFormat
|
||||
glVertexAttribI4i
|
||||
glVertexAttribI4iv
|
||||
glVertexAttribI4ui
|
||||
glVertexAttribI4uiv
|
||||
glVertexAttribIFormat
|
||||
glVertexAttribIPointer
|
||||
glVertexAttribPointer
|
||||
glVertexBindingDivisor
|
||||
glViewport
|
||||
glWaitSync
|
||||
@@ -1,367 +0,0 @@
|
||||
glActiveShaderProgram
|
||||
glActiveTexture
|
||||
glAttachShader
|
||||
glBeginQuery
|
||||
glBeginTransformFeedback
|
||||
glBindAttribLocation
|
||||
glBindBuffer
|
||||
glBindBufferBase
|
||||
glBindBufferRange
|
||||
glBindFramebuffer
|
||||
glBindImageTexture
|
||||
glBindProgramPipeline
|
||||
glBindRenderbuffer
|
||||
glBindSampler
|
||||
glBindTexture
|
||||
glBindTransformFeedback
|
||||
glBindVertexArray
|
||||
glBindVertexArrayOES
|
||||
glBindVertexBuffer
|
||||
glBlendBarrierKHR
|
||||
glBlendColor
|
||||
glBlendEquation
|
||||
glBlendEquationSeparate
|
||||
glBlendEquationSeparateiEXT
|
||||
glBlendEquationiEXT
|
||||
glBlendFunc
|
||||
glBlendFuncSeparate
|
||||
glBlendFuncSeparateiEXT
|
||||
glBlendFunciEXT
|
||||
glBlitFramebuffer
|
||||
glBufferData
|
||||
glBufferSubData
|
||||
glCheckFramebufferStatus
|
||||
glClear
|
||||
glClearBufferfi
|
||||
glClearBufferfv
|
||||
glClearBufferiv
|
||||
glClearBufferuiv
|
||||
glClearColor
|
||||
glClearDepthf
|
||||
glClearStencil
|
||||
glClientWaitSync
|
||||
glColorMask
|
||||
glColorMaskiEXT
|
||||
glCompileShader
|
||||
glCompressedTexImage2D
|
||||
glCompressedTexImage3D
|
||||
glCompressedTexImage3DOES
|
||||
glCompressedTexSubImage2D
|
||||
glCompressedTexSubImage3D
|
||||
glCompressedTexSubImage3DOES
|
||||
glCopyBufferSubData
|
||||
glCopyImageSubDataEXT
|
||||
glCopyTexImage2D
|
||||
glCopyTexSubImage2D
|
||||
glCopyTexSubImage3D
|
||||
glCopyTexSubImage3DOES
|
||||
glCreateProgram
|
||||
glCreateShader
|
||||
glCreateShaderProgramv
|
||||
glCullFace
|
||||
glDebugMessageCallbackKHR
|
||||
glDebugMessageControlKHR
|
||||
glDebugMessageInsertKHR
|
||||
glDeleteBuffers
|
||||
glDeleteFramebuffers
|
||||
glDeleteProgram
|
||||
glDeleteProgramPipelines
|
||||
glDeleteQueries
|
||||
glDeleteRenderbuffers
|
||||
glDeleteSamplers
|
||||
glDeleteShader
|
||||
glDeleteSync
|
||||
glDeleteTextures
|
||||
glDeleteTransformFeedbacks
|
||||
glDeleteVertexArrays
|
||||
glDeleteVertexArraysOES
|
||||
glDepthFunc
|
||||
glDepthMask
|
||||
glDepthRangef
|
||||
glDetachShader
|
||||
glDisable
|
||||
glDisableVertexAttribArray
|
||||
glDisableiEXT
|
||||
glDispatchCompute
|
||||
glDispatchComputeIndirect
|
||||
glDrawArrays
|
||||
glDrawArraysIndirect
|
||||
glDrawArraysInstanced
|
||||
glDrawBuffers
|
||||
glDrawElements
|
||||
glDrawElementsIndirect
|
||||
glDrawElementsInstanced
|
||||
glDrawRangeElements
|
||||
glEGLImageTargetRenderbufferStorageOES
|
||||
glEGLImageTargetTexture2DOES
|
||||
glEnable
|
||||
glEnableVertexAttribArray
|
||||
glEnableiEXT
|
||||
glEndQuery
|
||||
glEndTransformFeedback
|
||||
glFenceSync
|
||||
glFinish
|
||||
glFlush
|
||||
glFlushMappedBufferRange
|
||||
glFramebufferParameteri
|
||||
glFramebufferRenderbuffer
|
||||
glFramebufferTexture2D
|
||||
glFramebufferTexture3DOES
|
||||
glFramebufferTextureEXT
|
||||
glFramebufferTextureLayer
|
||||
glFrontFace
|
||||
glGenBuffers
|
||||
glGenFramebuffers
|
||||
glGenProgramPipelines
|
||||
glGenQueries
|
||||
glGenRenderbuffers
|
||||
glGenSamplers
|
||||
glGenTextures
|
||||
glGenTransformFeedbacks
|
||||
glGenVertexArrays
|
||||
glGenVertexArraysOES
|
||||
glGenerateMipmap
|
||||
glGetActiveAttrib
|
||||
glGetActiveUniform
|
||||
glGetActiveUniformBlockName
|
||||
glGetActiveUniformBlockiv
|
||||
glGetActiveUniformsiv
|
||||
glGetAttachedShaders
|
||||
glGetAttribLocation
|
||||
glGetBooleani_v
|
||||
glGetBooleanv
|
||||
glGetBufferParameteri64v
|
||||
glGetBufferParameteriv
|
||||
glGetBufferPointerv
|
||||
glGetBufferPointervOES
|
||||
glGetDebugMessageLogKHR
|
||||
glGetError
|
||||
glGetFloatv
|
||||
glGetFragDataLocation
|
||||
glGetFramebufferAttachmentParameteriv
|
||||
glGetFramebufferParameteriv
|
||||
glGetInteger64i_v
|
||||
glGetInteger64v
|
||||
glGetIntegeri_v
|
||||
glGetIntegerv
|
||||
glGetInternalformativ
|
||||
glGetMultisamplefv
|
||||
glGetObjectLabelKHR
|
||||
glGetObjectPtrLabelKHR
|
||||
glGetPointervKHR
|
||||
glGetProgramBinary
|
||||
glGetProgramBinaryOES
|
||||
glGetProgramInfoLog
|
||||
glGetProgramInterfaceiv
|
||||
glGetProgramPipelineInfoLog
|
||||
glGetProgramPipelineiv
|
||||
glGetProgramResourceIndex
|
||||
glGetProgramResourceLocation
|
||||
glGetProgramResourceName
|
||||
glGetProgramResourceiv
|
||||
glGetProgramiv
|
||||
glGetQueryObjectuiv
|
||||
glGetQueryiv
|
||||
glGetRenderbufferParameteriv
|
||||
glGetSamplerParameterIivEXT
|
||||
glGetSamplerParameterIuivEXT
|
||||
glGetSamplerParameterfv
|
||||
glGetSamplerParameteriv
|
||||
glGetShaderInfoLog
|
||||
glGetShaderPrecisionFormat
|
||||
glGetShaderSource
|
||||
glGetShaderiv
|
||||
glGetString
|
||||
glGetStringi
|
||||
glGetSynciv
|
||||
glGetTexLevelParameterfv
|
||||
glGetTexLevelParameteriv
|
||||
glGetTexParameterIivEXT
|
||||
glGetTexParameterIuivEXT
|
||||
glGetTexParameterfv
|
||||
glGetTexParameteriv
|
||||
glGetTransformFeedbackVarying
|
||||
glGetUniformBlockIndex
|
||||
glGetUniformIndices
|
||||
glGetUniformLocation
|
||||
glGetUniformfv
|
||||
glGetUniformiv
|
||||
glGetUniformuiv
|
||||
glGetVertexAttribIiv
|
||||
glGetVertexAttribIuiv
|
||||
glGetVertexAttribPointerv
|
||||
glGetVertexAttribfv
|
||||
glGetVertexAttribiv
|
||||
glHint
|
||||
glInvalidateFramebuffer
|
||||
glInvalidateSubFramebuffer
|
||||
glIsBuffer
|
||||
glIsEnabled
|
||||
glIsEnablediEXT
|
||||
glIsFramebuffer
|
||||
glIsProgram
|
||||
glIsProgramPipeline
|
||||
glIsQuery
|
||||
glIsRenderbuffer
|
||||
glIsSampler
|
||||
glIsShader
|
||||
glIsSync
|
||||
glIsTexture
|
||||
glIsTransformFeedback
|
||||
glIsVertexArray
|
||||
glIsVertexArrayOES
|
||||
glLineWidth
|
||||
glLinkProgram
|
||||
glMapBufferOES
|
||||
glMapBufferRange
|
||||
glMemoryBarrier
|
||||
glMemoryBarrierByRegion
|
||||
glMinSampleShadingOES
|
||||
glObjectLabelKHR
|
||||
glObjectPtrLabelKHR
|
||||
glPatchParameteriEXT
|
||||
glPauseTransformFeedback
|
||||
glPixelStorei
|
||||
glPolygonOffset
|
||||
glPopDebugGroupKHR
|
||||
glPrimitiveBoundingBoxEXT
|
||||
glProgramBinary
|
||||
glProgramBinaryOES
|
||||
glProgramParameteri
|
||||
glProgramUniform1f
|
||||
glProgramUniform1fv
|
||||
glProgramUniform1i
|
||||
glProgramUniform1iv
|
||||
glProgramUniform1ui
|
||||
glProgramUniform1uiv
|
||||
glProgramUniform2f
|
||||
glProgramUniform2fv
|
||||
glProgramUniform2i
|
||||
glProgramUniform2iv
|
||||
glProgramUniform2ui
|
||||
glProgramUniform2uiv
|
||||
glProgramUniform3f
|
||||
glProgramUniform3fv
|
||||
glProgramUniform3i
|
||||
glProgramUniform3iv
|
||||
glProgramUniform3ui
|
||||
glProgramUniform3uiv
|
||||
glProgramUniform4f
|
||||
glProgramUniform4fv
|
||||
glProgramUniform4i
|
||||
glProgramUniform4iv
|
||||
glProgramUniform4ui
|
||||
glProgramUniform4uiv
|
||||
glProgramUniformMatrix2fv
|
||||
glProgramUniformMatrix2x3fv
|
||||
glProgramUniformMatrix2x4fv
|
||||
glProgramUniformMatrix3fv
|
||||
glProgramUniformMatrix3x2fv
|
||||
glProgramUniformMatrix3x4fv
|
||||
glProgramUniformMatrix4fv
|
||||
glProgramUniformMatrix4x2fv
|
||||
glProgramUniformMatrix4x3fv
|
||||
glPushDebugGroupKHR
|
||||
glReadBuffer
|
||||
glReadPixels
|
||||
glReleaseShaderCompiler
|
||||
glRenderbufferStorage
|
||||
glRenderbufferStorageMultisample
|
||||
glResumeTransformFeedback
|
||||
glSampleCoverage
|
||||
glSampleMaski
|
||||
glSamplerParameterIivEXT
|
||||
glSamplerParameterIuivEXT
|
||||
glSamplerParameterf
|
||||
glSamplerParameterfv
|
||||
glSamplerParameteri
|
||||
glSamplerParameteriv
|
||||
glScissor
|
||||
glShaderBinary
|
||||
glShaderSource
|
||||
glStencilFunc
|
||||
glStencilFuncSeparate
|
||||
glStencilMask
|
||||
glStencilMaskSeparate
|
||||
glStencilOp
|
||||
glStencilOpSeparate
|
||||
glTexBufferEXT
|
||||
glTexBufferRangeEXT
|
||||
glTexImage2D
|
||||
glTexImage3D
|
||||
glTexImage3DOES
|
||||
glTexParameterIivEXT
|
||||
glTexParameterIuivEXT
|
||||
glTexParameterf
|
||||
glTexParameterfv
|
||||
glTexParameteri
|
||||
glTexParameteriv
|
||||
glTexStorage2D
|
||||
glTexStorage2DMultisample
|
||||
glTexStorage3D
|
||||
glTexStorage3DMultisampleOES
|
||||
glTexSubImage2D
|
||||
glTexSubImage3D
|
||||
glTexSubImage3DOES
|
||||
glTransformFeedbackVaryings
|
||||
glUniform1f
|
||||
glUniform1fv
|
||||
glUniform1i
|
||||
glUniform1iv
|
||||
glUniform1ui
|
||||
glUniform1uiv
|
||||
glUniform2f
|
||||
glUniform2fv
|
||||
glUniform2i
|
||||
glUniform2iv
|
||||
glUniform2ui
|
||||
glUniform2uiv
|
||||
glUniform3f
|
||||
glUniform3fv
|
||||
glUniform3i
|
||||
glUniform3iv
|
||||
glUniform3ui
|
||||
glUniform3uiv
|
||||
glUniform4f
|
||||
glUniform4fv
|
||||
glUniform4i
|
||||
glUniform4iv
|
||||
glUniform4ui
|
||||
glUniform4uiv
|
||||
glUniformBlockBinding
|
||||
glUniformMatrix2fv
|
||||
glUniformMatrix2x3fv
|
||||
glUniformMatrix2x4fv
|
||||
glUniformMatrix3fv
|
||||
glUniformMatrix3x2fv
|
||||
glUniformMatrix3x4fv
|
||||
glUniformMatrix4fv
|
||||
glUniformMatrix4x2fv
|
||||
glUniformMatrix4x3fv
|
||||
glUnmapBuffer
|
||||
glUnmapBufferOES
|
||||
glUseProgram
|
||||
glUseProgramStages
|
||||
glValidateProgram
|
||||
glValidateProgramPipeline
|
||||
glVertexAttrib1f
|
||||
glVertexAttrib1fv
|
||||
glVertexAttrib2f
|
||||
glVertexAttrib2fv
|
||||
glVertexAttrib3f
|
||||
glVertexAttrib3fv
|
||||
glVertexAttrib4f
|
||||
glVertexAttrib4fv
|
||||
glVertexAttribBinding
|
||||
glVertexAttribDivisor
|
||||
glVertexAttribFormat
|
||||
glVertexAttribI4i
|
||||
glVertexAttribI4iv
|
||||
glVertexAttribI4ui
|
||||
glVertexAttribI4uiv
|
||||
glVertexAttribIFormat
|
||||
glVertexAttribIPointer
|
||||
glVertexAttribPointer
|
||||
glVertexBindingDivisor
|
||||
glViewport
|
||||
glWaitSync
|
||||
@@ -1,525 +0,0 @@
|
||||
#ifndef __gl2_h_
|
||||
#define __gl2_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos OpenGL / OpenGL ES XML
|
||||
** API Registry. The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 26696 $ on $Date: 2014-05-17 14:48:55 -0700 (Sat, 17 May 2014) $
|
||||
*/
|
||||
|
||||
#include <GLES2/gl2platform.h>
|
||||
|
||||
/* Generated on date 20140517 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
* Profile: common
|
||||
* Versions considered: 2\.[0-9]
|
||||
* Versions emitted: .*
|
||||
* Default extensions included: None
|
||||
* Additional extensions included: _nomatch_^
|
||||
* Extensions removed: _nomatch_^
|
||||
*/
|
||||
|
||||
#ifndef GL_ES_VERSION_2_0
|
||||
#define GL_ES_VERSION_2_0 1
|
||||
#include <KHR/khrplatform.h>
|
||||
typedef khronos_int8_t GLbyte;
|
||||
typedef khronos_float_t GLclampf;
|
||||
typedef khronos_int32_t GLfixed;
|
||||
typedef short GLshort;
|
||||
typedef unsigned short GLushort;
|
||||
typedef void GLvoid;
|
||||
typedef struct __GLsync *GLsync;
|
||||
typedef khronos_int64_t GLint64;
|
||||
typedef khronos_uint64_t GLuint64;
|
||||
typedef unsigned int GLenum;
|
||||
typedef unsigned int GLuint;
|
||||
typedef char GLchar;
|
||||
typedef khronos_float_t GLfloat;
|
||||
typedef khronos_ssize_t GLsizeiptr;
|
||||
typedef khronos_intptr_t GLintptr;
|
||||
typedef unsigned int GLbitfield;
|
||||
typedef int GLint;
|
||||
typedef unsigned char GLboolean;
|
||||
typedef int GLsizei;
|
||||
typedef khronos_uint8_t GLubyte;
|
||||
#define GL_DEPTH_BUFFER_BIT 0x00000100
|
||||
#define GL_STENCIL_BUFFER_BIT 0x00000400
|
||||
#define GL_COLOR_BUFFER_BIT 0x00004000
|
||||
#define GL_FALSE 0
|
||||
#define GL_TRUE 1
|
||||
#define GL_POINTS 0x0000
|
||||
#define GL_LINES 0x0001
|
||||
#define GL_LINE_LOOP 0x0002
|
||||
#define GL_LINE_STRIP 0x0003
|
||||
#define GL_TRIANGLES 0x0004
|
||||
#define GL_TRIANGLE_STRIP 0x0005
|
||||
#define GL_TRIANGLE_FAN 0x0006
|
||||
#define GL_ZERO 0
|
||||
#define GL_ONE 1
|
||||
#define GL_SRC_COLOR 0x0300
|
||||
#define GL_ONE_MINUS_SRC_COLOR 0x0301
|
||||
#define GL_SRC_ALPHA 0x0302
|
||||
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
||||
#define GL_DST_ALPHA 0x0304
|
||||
#define GL_ONE_MINUS_DST_ALPHA 0x0305
|
||||
#define GL_DST_COLOR 0x0306
|
||||
#define GL_ONE_MINUS_DST_COLOR 0x0307
|
||||
#define GL_SRC_ALPHA_SATURATE 0x0308
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_BLEND_EQUATION_RGB 0x8009
|
||||
#define GL_BLEND_EQUATION_ALPHA 0x883D
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_BLEND_DST_RGB 0x80C8
|
||||
#define GL_BLEND_SRC_RGB 0x80C9
|
||||
#define GL_BLEND_DST_ALPHA 0x80CA
|
||||
#define GL_BLEND_SRC_ALPHA 0x80CB
|
||||
#define GL_CONSTANT_COLOR 0x8001
|
||||
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
#define GL_ARRAY_BUFFER 0x8892
|
||||
#define GL_ELEMENT_ARRAY_BUFFER 0x8893
|
||||
#define GL_ARRAY_BUFFER_BINDING 0x8894
|
||||
#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
|
||||
#define GL_STREAM_DRAW 0x88E0
|
||||
#define GL_STATIC_DRAW 0x88E4
|
||||
#define GL_DYNAMIC_DRAW 0x88E8
|
||||
#define GL_BUFFER_SIZE 0x8764
|
||||
#define GL_BUFFER_USAGE 0x8765
|
||||
#define GL_CURRENT_VERTEX_ATTRIB 0x8626
|
||||
#define GL_FRONT 0x0404
|
||||
#define GL_BACK 0x0405
|
||||
#define GL_FRONT_AND_BACK 0x0408
|
||||
#define GL_TEXTURE_2D 0x0DE1
|
||||
#define GL_CULL_FACE 0x0B44
|
||||
#define GL_BLEND 0x0BE2
|
||||
#define GL_DITHER 0x0BD0
|
||||
#define GL_STENCIL_TEST 0x0B90
|
||||
#define GL_DEPTH_TEST 0x0B71
|
||||
#define GL_SCISSOR_TEST 0x0C11
|
||||
#define GL_POLYGON_OFFSET_FILL 0x8037
|
||||
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
|
||||
#define GL_SAMPLE_COVERAGE 0x80A0
|
||||
#define GL_NO_ERROR 0
|
||||
#define GL_INVALID_ENUM 0x0500
|
||||
#define GL_INVALID_VALUE 0x0501
|
||||
#define GL_INVALID_OPERATION 0x0502
|
||||
#define GL_OUT_OF_MEMORY 0x0505
|
||||
#define GL_CW 0x0900
|
||||
#define GL_CCW 0x0901
|
||||
#define GL_LINE_WIDTH 0x0B21
|
||||
#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
|
||||
#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
|
||||
#define GL_CULL_FACE_MODE 0x0B45
|
||||
#define GL_FRONT_FACE 0x0B46
|
||||
#define GL_DEPTH_RANGE 0x0B70
|
||||
#define GL_DEPTH_WRITEMASK 0x0B72
|
||||
#define GL_DEPTH_CLEAR_VALUE 0x0B73
|
||||
#define GL_DEPTH_FUNC 0x0B74
|
||||
#define GL_STENCIL_CLEAR_VALUE 0x0B91
|
||||
#define GL_STENCIL_FUNC 0x0B92
|
||||
#define GL_STENCIL_FAIL 0x0B94
|
||||
#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
|
||||
#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
|
||||
#define GL_STENCIL_REF 0x0B97
|
||||
#define GL_STENCIL_VALUE_MASK 0x0B93
|
||||
#define GL_STENCIL_WRITEMASK 0x0B98
|
||||
#define GL_STENCIL_BACK_FUNC 0x8800
|
||||
#define GL_STENCIL_BACK_FAIL 0x8801
|
||||
#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
|
||||
#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
|
||||
#define GL_STENCIL_BACK_REF 0x8CA3
|
||||
#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
|
||||
#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
|
||||
#define GL_VIEWPORT 0x0BA2
|
||||
#define GL_SCISSOR_BOX 0x0C10
|
||||
#define GL_COLOR_CLEAR_VALUE 0x0C22
|
||||
#define GL_COLOR_WRITEMASK 0x0C23
|
||||
#define GL_UNPACK_ALIGNMENT 0x0CF5
|
||||
#define GL_PACK_ALIGNMENT 0x0D05
|
||||
#define GL_MAX_TEXTURE_SIZE 0x0D33
|
||||
#define GL_MAX_VIEWPORT_DIMS 0x0D3A
|
||||
#define GL_SUBPIXEL_BITS 0x0D50
|
||||
#define GL_RED_BITS 0x0D52
|
||||
#define GL_GREEN_BITS 0x0D53
|
||||
#define GL_BLUE_BITS 0x0D54
|
||||
#define GL_ALPHA_BITS 0x0D55
|
||||
#define GL_DEPTH_BITS 0x0D56
|
||||
#define GL_STENCIL_BITS 0x0D57
|
||||
#define GL_POLYGON_OFFSET_UNITS 0x2A00
|
||||
#define GL_POLYGON_OFFSET_FACTOR 0x8038
|
||||
#define GL_TEXTURE_BINDING_2D 0x8069
|
||||
#define GL_SAMPLE_BUFFERS 0x80A8
|
||||
#define GL_SAMPLES 0x80A9
|
||||
#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
|
||||
#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
|
||||
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
|
||||
#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
|
||||
#define GL_DONT_CARE 0x1100
|
||||
#define GL_FASTEST 0x1101
|
||||
#define GL_NICEST 0x1102
|
||||
#define GL_GENERATE_MIPMAP_HINT 0x8192
|
||||
#define GL_BYTE 0x1400
|
||||
#define GL_UNSIGNED_BYTE 0x1401
|
||||
#define GL_SHORT 0x1402
|
||||
#define GL_UNSIGNED_SHORT 0x1403
|
||||
#define GL_INT 0x1404
|
||||
#define GL_UNSIGNED_INT 0x1405
|
||||
#define GL_FLOAT 0x1406
|
||||
#define GL_FIXED 0x140C
|
||||
#define GL_DEPTH_COMPONENT 0x1902
|
||||
#define GL_ALPHA 0x1906
|
||||
#define GL_RGB 0x1907
|
||||
#define GL_RGBA 0x1908
|
||||
#define GL_LUMINANCE 0x1909
|
||||
#define GL_LUMINANCE_ALPHA 0x190A
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
|
||||
#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
|
||||
#define GL_UNSIGNED_SHORT_5_6_5 0x8363
|
||||
#define GL_FRAGMENT_SHADER 0x8B30
|
||||
#define GL_VERTEX_SHADER 0x8B31
|
||||
#define GL_MAX_VERTEX_ATTRIBS 0x8869
|
||||
#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
|
||||
#define GL_MAX_VARYING_VECTORS 0x8DFC
|
||||
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
|
||||
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
|
||||
#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
|
||||
#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
|
||||
#define GL_SHADER_TYPE 0x8B4F
|
||||
#define GL_DELETE_STATUS 0x8B80
|
||||
#define GL_LINK_STATUS 0x8B82
|
||||
#define GL_VALIDATE_STATUS 0x8B83
|
||||
#define GL_ATTACHED_SHADERS 0x8B85
|
||||
#define GL_ACTIVE_UNIFORMS 0x8B86
|
||||
#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
|
||||
#define GL_ACTIVE_ATTRIBUTES 0x8B89
|
||||
#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
|
||||
#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
|
||||
#define GL_CURRENT_PROGRAM 0x8B8D
|
||||
#define GL_NEVER 0x0200
|
||||
#define GL_LESS 0x0201
|
||||
#define GL_EQUAL 0x0202
|
||||
#define GL_LEQUAL 0x0203
|
||||
#define GL_GREATER 0x0204
|
||||
#define GL_NOTEQUAL 0x0205
|
||||
#define GL_GEQUAL 0x0206
|
||||
#define GL_ALWAYS 0x0207
|
||||
#define GL_KEEP 0x1E00
|
||||
#define GL_REPLACE 0x1E01
|
||||
#define GL_INCR 0x1E02
|
||||
#define GL_DECR 0x1E03
|
||||
#define GL_INVERT 0x150A
|
||||
#define GL_INCR_WRAP 0x8507
|
||||
#define GL_DECR_WRAP 0x8508
|
||||
#define GL_VENDOR 0x1F00
|
||||
#define GL_RENDERER 0x1F01
|
||||
#define GL_VERSION 0x1F02
|
||||
#define GL_EXTENSIONS 0x1F03
|
||||
#define GL_NEAREST 0x2600
|
||||
#define GL_LINEAR 0x2601
|
||||
#define GL_NEAREST_MIPMAP_NEAREST 0x2700
|
||||
#define GL_LINEAR_MIPMAP_NEAREST 0x2701
|
||||
#define GL_NEAREST_MIPMAP_LINEAR 0x2702
|
||||
#define GL_LINEAR_MIPMAP_LINEAR 0x2703
|
||||
#define GL_TEXTURE_MAG_FILTER 0x2800
|
||||
#define GL_TEXTURE_MIN_FILTER 0x2801
|
||||
#define GL_TEXTURE_WRAP_S 0x2802
|
||||
#define GL_TEXTURE_WRAP_T 0x2803
|
||||
#define GL_TEXTURE 0x1702
|
||||
#define GL_TEXTURE_CUBE_MAP 0x8513
|
||||
#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
|
||||
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
|
||||
#define GL_TEXTURE0 0x84C0
|
||||
#define GL_TEXTURE1 0x84C1
|
||||
#define GL_TEXTURE2 0x84C2
|
||||
#define GL_TEXTURE3 0x84C3
|
||||
#define GL_TEXTURE4 0x84C4
|
||||
#define GL_TEXTURE5 0x84C5
|
||||
#define GL_TEXTURE6 0x84C6
|
||||
#define GL_TEXTURE7 0x84C7
|
||||
#define GL_TEXTURE8 0x84C8
|
||||
#define GL_TEXTURE9 0x84C9
|
||||
#define GL_TEXTURE10 0x84CA
|
||||
#define GL_TEXTURE11 0x84CB
|
||||
#define GL_TEXTURE12 0x84CC
|
||||
#define GL_TEXTURE13 0x84CD
|
||||
#define GL_TEXTURE14 0x84CE
|
||||
#define GL_TEXTURE15 0x84CF
|
||||
#define GL_TEXTURE16 0x84D0
|
||||
#define GL_TEXTURE17 0x84D1
|
||||
#define GL_TEXTURE18 0x84D2
|
||||
#define GL_TEXTURE19 0x84D3
|
||||
#define GL_TEXTURE20 0x84D4
|
||||
#define GL_TEXTURE21 0x84D5
|
||||
#define GL_TEXTURE22 0x84D6
|
||||
#define GL_TEXTURE23 0x84D7
|
||||
#define GL_TEXTURE24 0x84D8
|
||||
#define GL_TEXTURE25 0x84D9
|
||||
#define GL_TEXTURE26 0x84DA
|
||||
#define GL_TEXTURE27 0x84DB
|
||||
#define GL_TEXTURE28 0x84DC
|
||||
#define GL_TEXTURE29 0x84DD
|
||||
#define GL_TEXTURE30 0x84DE
|
||||
#define GL_TEXTURE31 0x84DF
|
||||
#define GL_ACTIVE_TEXTURE 0x84E0
|
||||
#define GL_REPEAT 0x2901
|
||||
#define GL_CLAMP_TO_EDGE 0x812F
|
||||
#define GL_MIRRORED_REPEAT 0x8370
|
||||
#define GL_FLOAT_VEC2 0x8B50
|
||||
#define GL_FLOAT_VEC3 0x8B51
|
||||
#define GL_FLOAT_VEC4 0x8B52
|
||||
#define GL_INT_VEC2 0x8B53
|
||||
#define GL_INT_VEC3 0x8B54
|
||||
#define GL_INT_VEC4 0x8B55
|
||||
#define GL_BOOL 0x8B56
|
||||
#define GL_BOOL_VEC2 0x8B57
|
||||
#define GL_BOOL_VEC3 0x8B58
|
||||
#define GL_BOOL_VEC4 0x8B59
|
||||
#define GL_FLOAT_MAT2 0x8B5A
|
||||
#define GL_FLOAT_MAT3 0x8B5B
|
||||
#define GL_FLOAT_MAT4 0x8B5C
|
||||
#define GL_SAMPLER_2D 0x8B5E
|
||||
#define GL_SAMPLER_CUBE 0x8B60
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
|
||||
#define GL_COMPILE_STATUS 0x8B81
|
||||
#define GL_INFO_LOG_LENGTH 0x8B84
|
||||
#define GL_SHADER_SOURCE_LENGTH 0x8B88
|
||||
#define GL_SHADER_COMPILER 0x8DFA
|
||||
#define GL_SHADER_BINARY_FORMATS 0x8DF8
|
||||
#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
|
||||
#define GL_LOW_FLOAT 0x8DF0
|
||||
#define GL_MEDIUM_FLOAT 0x8DF1
|
||||
#define GL_HIGH_FLOAT 0x8DF2
|
||||
#define GL_LOW_INT 0x8DF3
|
||||
#define GL_MEDIUM_INT 0x8DF4
|
||||
#define GL_HIGH_INT 0x8DF5
|
||||
#define GL_FRAMEBUFFER 0x8D40
|
||||
#define GL_RENDERBUFFER 0x8D41
|
||||
#define GL_RGBA4 0x8056
|
||||
#define GL_RGB5_A1 0x8057
|
||||
#define GL_RGB565 0x8D62
|
||||
#define GL_DEPTH_COMPONENT16 0x81A5
|
||||
#define GL_STENCIL_INDEX8 0x8D48
|
||||
#define GL_RENDERBUFFER_WIDTH 0x8D42
|
||||
#define GL_RENDERBUFFER_HEIGHT 0x8D43
|
||||
#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
|
||||
#define GL_RENDERBUFFER_RED_SIZE 0x8D50
|
||||
#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
|
||||
#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
|
||||
#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
|
||||
#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
|
||||
#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
|
||||
#define GL_COLOR_ATTACHMENT0 0x8CE0
|
||||
#define GL_DEPTH_ATTACHMENT 0x8D00
|
||||
#define GL_STENCIL_ATTACHMENT 0x8D20
|
||||
#define GL_NONE 0
|
||||
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
|
||||
#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
|
||||
#define GL_FRAMEBUFFER_BINDING 0x8CA6
|
||||
#define GL_RENDERBUFFER_BINDING 0x8CA7
|
||||
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
|
||||
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
|
||||
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
|
||||
GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
|
||||
GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
|
||||
GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
|
||||
GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
|
||||
GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
|
||||
GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target);
|
||||
GL_APICALL void GL_APIENTRY glClear (GLbitfield mask);
|
||||
GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d);
|
||||
GL_APICALL void GL_APIENTRY glClearStencil (GLint s);
|
||||
GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
|
||||
GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
|
||||
GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL GLuint GL_APIENTRY glCreateProgram (void);
|
||||
GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type);
|
||||
GL_APICALL void GL_APIENTRY glCullFace (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
|
||||
GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func);
|
||||
GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag);
|
||||
GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f);
|
||||
GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glDisable (GLenum cap);
|
||||
GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index);
|
||||
GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
|
||||
GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
GL_APICALL void GL_APIENTRY glEnable (GLenum cap);
|
||||
GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index);
|
||||
GL_APICALL void GL_APIENTRY glFinish (void);
|
||||
GL_APICALL void GL_APIENTRY glFlush (void);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
|
||||
GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target);
|
||||
GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
|
||||
GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL GLenum GL_APIENTRY glGetError (void);
|
||||
GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data);
|
||||
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
|
||||
GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params);
|
||||
GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer);
|
||||
GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture);
|
||||
GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width);
|
||||
GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
|
||||
GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void);
|
||||
GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert);
|
||||
GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
|
||||
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
|
||||
GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
|
||||
GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0);
|
||||
GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0);
|
||||
GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1);
|
||||
GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1);
|
||||
GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
||||
GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
|
||||
GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
||||
GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUseProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
#endif /* GL_ES_VERSION_2_0 */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,30 +0,0 @@
|
||||
#ifndef __gl2platform_h_
|
||||
#define __gl2platform_h_
|
||||
|
||||
/* $Revision: 23328 $ on $Date:: 2013-10-02 02:28:28 -0700 #$ */
|
||||
|
||||
/*
|
||||
* This document is licensed under the SGI Free Software B License Version
|
||||
* 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
||||
*/
|
||||
|
||||
/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h
|
||||
*
|
||||
* Adopters may modify khrplatform.h and this file to suit their platform.
|
||||
* You are encouraged to submit all modifications to the Khronos group so that
|
||||
* they can be included in future versions of this file. Please submit changes
|
||||
* by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
|
||||
* by filing a bug against product "OpenGL-ES" component "Registry".
|
||||
*/
|
||||
|
||||
#include <KHR/khrplatform.h>
|
||||
|
||||
#ifndef GL_APICALL
|
||||
#define GL_APICALL KHRONOS_APICALL
|
||||
#endif
|
||||
|
||||
#ifndef GL_APIENTRY
|
||||
#define GL_APIENTRY KHRONOS_APIENTRY
|
||||
#endif
|
||||
|
||||
#endif /* __gl2platform_h_ */
|
||||
@@ -1,939 +0,0 @@
|
||||
#ifndef __gl3_h_
|
||||
#define __gl3_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2014 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos OpenGL / OpenGL ES XML
|
||||
** API Registry. The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.opengl.org/registry/
|
||||
**
|
||||
** Khronos $Revision: 26696 $ on $Date: 2014-05-17 14:48:55 -0700 (Sat, 17 May 2014) $
|
||||
*/
|
||||
|
||||
#include <GLES3/gl3platform.h>
|
||||
|
||||
/* Generated on date 20140517 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
* Profile: common
|
||||
* Versions considered: 2\.[0-9]|3.0
|
||||
* Versions emitted: .*
|
||||
* Default extensions included: None
|
||||
* Additional extensions included: _nomatch_^
|
||||
* Extensions removed: _nomatch_^
|
||||
*/
|
||||
|
||||
#ifndef GL_ES_VERSION_2_0
|
||||
#define GL_ES_VERSION_2_0 1
|
||||
#include <KHR/khrplatform.h>
|
||||
typedef khronos_int8_t GLbyte;
|
||||
typedef khronos_float_t GLclampf;
|
||||
typedef khronos_int32_t GLfixed;
|
||||
typedef short GLshort;
|
||||
typedef unsigned short GLushort;
|
||||
typedef void GLvoid;
|
||||
typedef struct __GLsync *GLsync;
|
||||
typedef khronos_int64_t GLint64;
|
||||
typedef khronos_uint64_t GLuint64;
|
||||
typedef unsigned int GLenum;
|
||||
typedef unsigned int GLuint;
|
||||
typedef char GLchar;
|
||||
typedef khronos_float_t GLfloat;
|
||||
typedef khronos_ssize_t GLsizeiptr;
|
||||
typedef khronos_intptr_t GLintptr;
|
||||
typedef unsigned int GLbitfield;
|
||||
typedef int GLint;
|
||||
typedef unsigned char GLboolean;
|
||||
typedef int GLsizei;
|
||||
typedef khronos_uint8_t GLubyte;
|
||||
#define GL_DEPTH_BUFFER_BIT 0x00000100
|
||||
#define GL_STENCIL_BUFFER_BIT 0x00000400
|
||||
#define GL_COLOR_BUFFER_BIT 0x00004000
|
||||
#define GL_FALSE 0
|
||||
#define GL_TRUE 1
|
||||
#define GL_POINTS 0x0000
|
||||
#define GL_LINES 0x0001
|
||||
#define GL_LINE_LOOP 0x0002
|
||||
#define GL_LINE_STRIP 0x0003
|
||||
#define GL_TRIANGLES 0x0004
|
||||
#define GL_TRIANGLE_STRIP 0x0005
|
||||
#define GL_TRIANGLE_FAN 0x0006
|
||||
#define GL_ZERO 0
|
||||
#define GL_ONE 1
|
||||
#define GL_SRC_COLOR 0x0300
|
||||
#define GL_ONE_MINUS_SRC_COLOR 0x0301
|
||||
#define GL_SRC_ALPHA 0x0302
|
||||
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
||||
#define GL_DST_ALPHA 0x0304
|
||||
#define GL_ONE_MINUS_DST_ALPHA 0x0305
|
||||
#define GL_DST_COLOR 0x0306
|
||||
#define GL_ONE_MINUS_DST_COLOR 0x0307
|
||||
#define GL_SRC_ALPHA_SATURATE 0x0308
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_BLEND_EQUATION_RGB 0x8009
|
||||
#define GL_BLEND_EQUATION_ALPHA 0x883D
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_BLEND_DST_RGB 0x80C8
|
||||
#define GL_BLEND_SRC_RGB 0x80C9
|
||||
#define GL_BLEND_DST_ALPHA 0x80CA
|
||||
#define GL_BLEND_SRC_ALPHA 0x80CB
|
||||
#define GL_CONSTANT_COLOR 0x8001
|
||||
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
#define GL_ARRAY_BUFFER 0x8892
|
||||
#define GL_ELEMENT_ARRAY_BUFFER 0x8893
|
||||
#define GL_ARRAY_BUFFER_BINDING 0x8894
|
||||
#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
|
||||
#define GL_STREAM_DRAW 0x88E0
|
||||
#define GL_STATIC_DRAW 0x88E4
|
||||
#define GL_DYNAMIC_DRAW 0x88E8
|
||||
#define GL_BUFFER_SIZE 0x8764
|
||||
#define GL_BUFFER_USAGE 0x8765
|
||||
#define GL_CURRENT_VERTEX_ATTRIB 0x8626
|
||||
#define GL_FRONT 0x0404
|
||||
#define GL_BACK 0x0405
|
||||
#define GL_FRONT_AND_BACK 0x0408
|
||||
#define GL_TEXTURE_2D 0x0DE1
|
||||
#define GL_CULL_FACE 0x0B44
|
||||
#define GL_BLEND 0x0BE2
|
||||
#define GL_DITHER 0x0BD0
|
||||
#define GL_STENCIL_TEST 0x0B90
|
||||
#define GL_DEPTH_TEST 0x0B71
|
||||
#define GL_SCISSOR_TEST 0x0C11
|
||||
#define GL_POLYGON_OFFSET_FILL 0x8037
|
||||
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
|
||||
#define GL_SAMPLE_COVERAGE 0x80A0
|
||||
#define GL_NO_ERROR 0
|
||||
#define GL_INVALID_ENUM 0x0500
|
||||
#define GL_INVALID_VALUE 0x0501
|
||||
#define GL_INVALID_OPERATION 0x0502
|
||||
#define GL_OUT_OF_MEMORY 0x0505
|
||||
#define GL_CW 0x0900
|
||||
#define GL_CCW 0x0901
|
||||
#define GL_LINE_WIDTH 0x0B21
|
||||
#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
|
||||
#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
|
||||
#define GL_CULL_FACE_MODE 0x0B45
|
||||
#define GL_FRONT_FACE 0x0B46
|
||||
#define GL_DEPTH_RANGE 0x0B70
|
||||
#define GL_DEPTH_WRITEMASK 0x0B72
|
||||
#define GL_DEPTH_CLEAR_VALUE 0x0B73
|
||||
#define GL_DEPTH_FUNC 0x0B74
|
||||
#define GL_STENCIL_CLEAR_VALUE 0x0B91
|
||||
#define GL_STENCIL_FUNC 0x0B92
|
||||
#define GL_STENCIL_FAIL 0x0B94
|
||||
#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
|
||||
#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
|
||||
#define GL_STENCIL_REF 0x0B97
|
||||
#define GL_STENCIL_VALUE_MASK 0x0B93
|
||||
#define GL_STENCIL_WRITEMASK 0x0B98
|
||||
#define GL_STENCIL_BACK_FUNC 0x8800
|
||||
#define GL_STENCIL_BACK_FAIL 0x8801
|
||||
#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
|
||||
#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
|
||||
#define GL_STENCIL_BACK_REF 0x8CA3
|
||||
#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
|
||||
#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
|
||||
#define GL_VIEWPORT 0x0BA2
|
||||
#define GL_SCISSOR_BOX 0x0C10
|
||||
#define GL_COLOR_CLEAR_VALUE 0x0C22
|
||||
#define GL_COLOR_WRITEMASK 0x0C23
|
||||
#define GL_UNPACK_ALIGNMENT 0x0CF5
|
||||
#define GL_PACK_ALIGNMENT 0x0D05
|
||||
#define GL_MAX_TEXTURE_SIZE 0x0D33
|
||||
#define GL_MAX_VIEWPORT_DIMS 0x0D3A
|
||||
#define GL_SUBPIXEL_BITS 0x0D50
|
||||
#define GL_RED_BITS 0x0D52
|
||||
#define GL_GREEN_BITS 0x0D53
|
||||
#define GL_BLUE_BITS 0x0D54
|
||||
#define GL_ALPHA_BITS 0x0D55
|
||||
#define GL_DEPTH_BITS 0x0D56
|
||||
#define GL_STENCIL_BITS 0x0D57
|
||||
#define GL_POLYGON_OFFSET_UNITS 0x2A00
|
||||
#define GL_POLYGON_OFFSET_FACTOR 0x8038
|
||||
#define GL_TEXTURE_BINDING_2D 0x8069
|
||||
#define GL_SAMPLE_BUFFERS 0x80A8
|
||||
#define GL_SAMPLES 0x80A9
|
||||
#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
|
||||
#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
|
||||
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
|
||||
#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
|
||||
#define GL_DONT_CARE 0x1100
|
||||
#define GL_FASTEST 0x1101
|
||||
#define GL_NICEST 0x1102
|
||||
#define GL_GENERATE_MIPMAP_HINT 0x8192
|
||||
#define GL_BYTE 0x1400
|
||||
#define GL_UNSIGNED_BYTE 0x1401
|
||||
#define GL_SHORT 0x1402
|
||||
#define GL_UNSIGNED_SHORT 0x1403
|
||||
#define GL_INT 0x1404
|
||||
#define GL_UNSIGNED_INT 0x1405
|
||||
#define GL_FLOAT 0x1406
|
||||
#define GL_FIXED 0x140C
|
||||
#define GL_DEPTH_COMPONENT 0x1902
|
||||
#define GL_ALPHA 0x1906
|
||||
#define GL_RGB 0x1907
|
||||
#define GL_RGBA 0x1908
|
||||
#define GL_LUMINANCE 0x1909
|
||||
#define GL_LUMINANCE_ALPHA 0x190A
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
|
||||
#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
|
||||
#define GL_UNSIGNED_SHORT_5_6_5 0x8363
|
||||
#define GL_FRAGMENT_SHADER 0x8B30
|
||||
#define GL_VERTEX_SHADER 0x8B31
|
||||
#define GL_MAX_VERTEX_ATTRIBS 0x8869
|
||||
#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
|
||||
#define GL_MAX_VARYING_VECTORS 0x8DFC
|
||||
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
|
||||
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
|
||||
#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
|
||||
#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
|
||||
#define GL_SHADER_TYPE 0x8B4F
|
||||
#define GL_DELETE_STATUS 0x8B80
|
||||
#define GL_LINK_STATUS 0x8B82
|
||||
#define GL_VALIDATE_STATUS 0x8B83
|
||||
#define GL_ATTACHED_SHADERS 0x8B85
|
||||
#define GL_ACTIVE_UNIFORMS 0x8B86
|
||||
#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
|
||||
#define GL_ACTIVE_ATTRIBUTES 0x8B89
|
||||
#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
|
||||
#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
|
||||
#define GL_CURRENT_PROGRAM 0x8B8D
|
||||
#define GL_NEVER 0x0200
|
||||
#define GL_LESS 0x0201
|
||||
#define GL_EQUAL 0x0202
|
||||
#define GL_LEQUAL 0x0203
|
||||
#define GL_GREATER 0x0204
|
||||
#define GL_NOTEQUAL 0x0205
|
||||
#define GL_GEQUAL 0x0206
|
||||
#define GL_ALWAYS 0x0207
|
||||
#define GL_KEEP 0x1E00
|
||||
#define GL_REPLACE 0x1E01
|
||||
#define GL_INCR 0x1E02
|
||||
#define GL_DECR 0x1E03
|
||||
#define GL_INVERT 0x150A
|
||||
#define GL_INCR_WRAP 0x8507
|
||||
#define GL_DECR_WRAP 0x8508
|
||||
#define GL_VENDOR 0x1F00
|
||||
#define GL_RENDERER 0x1F01
|
||||
#define GL_VERSION 0x1F02
|
||||
#define GL_EXTENSIONS 0x1F03
|
||||
#define GL_NEAREST 0x2600
|
||||
#define GL_LINEAR 0x2601
|
||||
#define GL_NEAREST_MIPMAP_NEAREST 0x2700
|
||||
#define GL_LINEAR_MIPMAP_NEAREST 0x2701
|
||||
#define GL_NEAREST_MIPMAP_LINEAR 0x2702
|
||||
#define GL_LINEAR_MIPMAP_LINEAR 0x2703
|
||||
#define GL_TEXTURE_MAG_FILTER 0x2800
|
||||
#define GL_TEXTURE_MIN_FILTER 0x2801
|
||||
#define GL_TEXTURE_WRAP_S 0x2802
|
||||
#define GL_TEXTURE_WRAP_T 0x2803
|
||||
#define GL_TEXTURE 0x1702
|
||||
#define GL_TEXTURE_CUBE_MAP 0x8513
|
||||
#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
|
||||
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
|
||||
#define GL_TEXTURE0 0x84C0
|
||||
#define GL_TEXTURE1 0x84C1
|
||||
#define GL_TEXTURE2 0x84C2
|
||||
#define GL_TEXTURE3 0x84C3
|
||||
#define GL_TEXTURE4 0x84C4
|
||||
#define GL_TEXTURE5 0x84C5
|
||||
#define GL_TEXTURE6 0x84C6
|
||||
#define GL_TEXTURE7 0x84C7
|
||||
#define GL_TEXTURE8 0x84C8
|
||||
#define GL_TEXTURE9 0x84C9
|
||||
#define GL_TEXTURE10 0x84CA
|
||||
#define GL_TEXTURE11 0x84CB
|
||||
#define GL_TEXTURE12 0x84CC
|
||||
#define GL_TEXTURE13 0x84CD
|
||||
#define GL_TEXTURE14 0x84CE
|
||||
#define GL_TEXTURE15 0x84CF
|
||||
#define GL_TEXTURE16 0x84D0
|
||||
#define GL_TEXTURE17 0x84D1
|
||||
#define GL_TEXTURE18 0x84D2
|
||||
#define GL_TEXTURE19 0x84D3
|
||||
#define GL_TEXTURE20 0x84D4
|
||||
#define GL_TEXTURE21 0x84D5
|
||||
#define GL_TEXTURE22 0x84D6
|
||||
#define GL_TEXTURE23 0x84D7
|
||||
#define GL_TEXTURE24 0x84D8
|
||||
#define GL_TEXTURE25 0x84D9
|
||||
#define GL_TEXTURE26 0x84DA
|
||||
#define GL_TEXTURE27 0x84DB
|
||||
#define GL_TEXTURE28 0x84DC
|
||||
#define GL_TEXTURE29 0x84DD
|
||||
#define GL_TEXTURE30 0x84DE
|
||||
#define GL_TEXTURE31 0x84DF
|
||||
#define GL_ACTIVE_TEXTURE 0x84E0
|
||||
#define GL_REPEAT 0x2901
|
||||
#define GL_CLAMP_TO_EDGE 0x812F
|
||||
#define GL_MIRRORED_REPEAT 0x8370
|
||||
#define GL_FLOAT_VEC2 0x8B50
|
||||
#define GL_FLOAT_VEC3 0x8B51
|
||||
#define GL_FLOAT_VEC4 0x8B52
|
||||
#define GL_INT_VEC2 0x8B53
|
||||
#define GL_INT_VEC3 0x8B54
|
||||
#define GL_INT_VEC4 0x8B55
|
||||
#define GL_BOOL 0x8B56
|
||||
#define GL_BOOL_VEC2 0x8B57
|
||||
#define GL_BOOL_VEC3 0x8B58
|
||||
#define GL_BOOL_VEC4 0x8B59
|
||||
#define GL_FLOAT_MAT2 0x8B5A
|
||||
#define GL_FLOAT_MAT3 0x8B5B
|
||||
#define GL_FLOAT_MAT4 0x8B5C
|
||||
#define GL_SAMPLER_2D 0x8B5E
|
||||
#define GL_SAMPLER_CUBE 0x8B60
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
|
||||
#define GL_COMPILE_STATUS 0x8B81
|
||||
#define GL_INFO_LOG_LENGTH 0x8B84
|
||||
#define GL_SHADER_SOURCE_LENGTH 0x8B88
|
||||
#define GL_SHADER_COMPILER 0x8DFA
|
||||
#define GL_SHADER_BINARY_FORMATS 0x8DF8
|
||||
#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
|
||||
#define GL_LOW_FLOAT 0x8DF0
|
||||
#define GL_MEDIUM_FLOAT 0x8DF1
|
||||
#define GL_HIGH_FLOAT 0x8DF2
|
||||
#define GL_LOW_INT 0x8DF3
|
||||
#define GL_MEDIUM_INT 0x8DF4
|
||||
#define GL_HIGH_INT 0x8DF5
|
||||
#define GL_FRAMEBUFFER 0x8D40
|
||||
#define GL_RENDERBUFFER 0x8D41
|
||||
#define GL_RGBA4 0x8056
|
||||
#define GL_RGB5_A1 0x8057
|
||||
#define GL_RGB565 0x8D62
|
||||
#define GL_DEPTH_COMPONENT16 0x81A5
|
||||
#define GL_STENCIL_INDEX8 0x8D48
|
||||
#define GL_RENDERBUFFER_WIDTH 0x8D42
|
||||
#define GL_RENDERBUFFER_HEIGHT 0x8D43
|
||||
#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
|
||||
#define GL_RENDERBUFFER_RED_SIZE 0x8D50
|
||||
#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
|
||||
#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
|
||||
#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
|
||||
#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
|
||||
#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
|
||||
#define GL_COLOR_ATTACHMENT0 0x8CE0
|
||||
#define GL_DEPTH_ATTACHMENT 0x8D00
|
||||
#define GL_STENCIL_ATTACHMENT 0x8D20
|
||||
#define GL_NONE 0
|
||||
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
|
||||
#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
|
||||
#define GL_FRAMEBUFFER_BINDING 0x8CA6
|
||||
#define GL_RENDERBUFFER_BINDING 0x8CA7
|
||||
#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
|
||||
GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture);
|
||||
GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
|
||||
GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
|
||||
GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
|
||||
GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
|
||||
GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
|
||||
GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
|
||||
GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target);
|
||||
GL_APICALL void GL_APIENTRY glClear (GLbitfield mask);
|
||||
GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d);
|
||||
GL_APICALL void GL_APIENTRY glClearStencil (GLint s);
|
||||
GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
|
||||
GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
|
||||
GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL GLuint GL_APIENTRY glCreateProgram (void);
|
||||
GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type);
|
||||
GL_APICALL void GL_APIENTRY glCullFace (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
|
||||
GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func);
|
||||
GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag);
|
||||
GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f);
|
||||
GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glDisable (GLenum cap);
|
||||
GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index);
|
||||
GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
|
||||
GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
GL_APICALL void GL_APIENTRY glEnable (GLenum cap);
|
||||
GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index);
|
||||
GL_APICALL void GL_APIENTRY glFinish (void);
|
||||
GL_APICALL void GL_APIENTRY glFlush (void);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
|
||||
GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target);
|
||||
GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
|
||||
GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL GLenum GL_APIENTRY glGetError (void);
|
||||
GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data);
|
||||
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
|
||||
GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params);
|
||||
GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer);
|
||||
GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture);
|
||||
GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width);
|
||||
GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
|
||||
GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void);
|
||||
GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert);
|
||||
GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
|
||||
GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
|
||||
GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
|
||||
GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0);
|
||||
GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0);
|
||||
GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1);
|
||||
GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1);
|
||||
GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
|
||||
GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
|
||||
GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
|
||||
GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
|
||||
GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUseProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
#endif /* GL_ES_VERSION_2_0 */
|
||||
|
||||
#ifndef GL_ES_VERSION_3_0
|
||||
#define GL_ES_VERSION_3_0 1
|
||||
typedef unsigned short GLhalf;
|
||||
#define GL_READ_BUFFER 0x0C02
|
||||
#define GL_UNPACK_ROW_LENGTH 0x0CF2
|
||||
#define GL_UNPACK_SKIP_ROWS 0x0CF3
|
||||
#define GL_UNPACK_SKIP_PIXELS 0x0CF4
|
||||
#define GL_PACK_ROW_LENGTH 0x0D02
|
||||
#define GL_PACK_SKIP_ROWS 0x0D03
|
||||
#define GL_PACK_SKIP_PIXELS 0x0D04
|
||||
#define GL_COLOR 0x1800
|
||||
#define GL_DEPTH 0x1801
|
||||
#define GL_STENCIL 0x1802
|
||||
#define GL_RED 0x1903
|
||||
#define GL_RGB8 0x8051
|
||||
#define GL_RGBA8 0x8058
|
||||
#define GL_RGB10_A2 0x8059
|
||||
#define GL_TEXTURE_BINDING_3D 0x806A
|
||||
#define GL_UNPACK_SKIP_IMAGES 0x806D
|
||||
#define GL_UNPACK_IMAGE_HEIGHT 0x806E
|
||||
#define GL_TEXTURE_3D 0x806F
|
||||
#define GL_TEXTURE_WRAP_R 0x8072
|
||||
#define GL_MAX_3D_TEXTURE_SIZE 0x8073
|
||||
#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
|
||||
#define GL_MAX_ELEMENTS_VERTICES 0x80E8
|
||||
#define GL_MAX_ELEMENTS_INDICES 0x80E9
|
||||
#define GL_TEXTURE_MIN_LOD 0x813A
|
||||
#define GL_TEXTURE_MAX_LOD 0x813B
|
||||
#define GL_TEXTURE_BASE_LEVEL 0x813C
|
||||
#define GL_TEXTURE_MAX_LEVEL 0x813D
|
||||
#define GL_MIN 0x8007
|
||||
#define GL_MAX 0x8008
|
||||
#define GL_DEPTH_COMPONENT24 0x81A6
|
||||
#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
|
||||
#define GL_TEXTURE_COMPARE_MODE 0x884C
|
||||
#define GL_TEXTURE_COMPARE_FUNC 0x884D
|
||||
#define GL_CURRENT_QUERY 0x8865
|
||||
#define GL_QUERY_RESULT 0x8866
|
||||
#define GL_QUERY_RESULT_AVAILABLE 0x8867
|
||||
#define GL_BUFFER_MAPPED 0x88BC
|
||||
#define GL_BUFFER_MAP_POINTER 0x88BD
|
||||
#define GL_STREAM_READ 0x88E1
|
||||
#define GL_STREAM_COPY 0x88E2
|
||||
#define GL_STATIC_READ 0x88E5
|
||||
#define GL_STATIC_COPY 0x88E6
|
||||
#define GL_DYNAMIC_READ 0x88E9
|
||||
#define GL_DYNAMIC_COPY 0x88EA
|
||||
#define GL_MAX_DRAW_BUFFERS 0x8824
|
||||
#define GL_DRAW_BUFFER0 0x8825
|
||||
#define GL_DRAW_BUFFER1 0x8826
|
||||
#define GL_DRAW_BUFFER2 0x8827
|
||||
#define GL_DRAW_BUFFER3 0x8828
|
||||
#define GL_DRAW_BUFFER4 0x8829
|
||||
#define GL_DRAW_BUFFER5 0x882A
|
||||
#define GL_DRAW_BUFFER6 0x882B
|
||||
#define GL_DRAW_BUFFER7 0x882C
|
||||
#define GL_DRAW_BUFFER8 0x882D
|
||||
#define GL_DRAW_BUFFER9 0x882E
|
||||
#define GL_DRAW_BUFFER10 0x882F
|
||||
#define GL_DRAW_BUFFER11 0x8830
|
||||
#define GL_DRAW_BUFFER12 0x8831
|
||||
#define GL_DRAW_BUFFER13 0x8832
|
||||
#define GL_DRAW_BUFFER14 0x8833
|
||||
#define GL_DRAW_BUFFER15 0x8834
|
||||
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
|
||||
#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
|
||||
#define GL_SAMPLER_3D 0x8B5F
|
||||
#define GL_SAMPLER_2D_SHADOW 0x8B62
|
||||
#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
|
||||
#define GL_PIXEL_PACK_BUFFER 0x88EB
|
||||
#define GL_PIXEL_UNPACK_BUFFER 0x88EC
|
||||
#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
|
||||
#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
|
||||
#define GL_FLOAT_MAT2x3 0x8B65
|
||||
#define GL_FLOAT_MAT2x4 0x8B66
|
||||
#define GL_FLOAT_MAT3x2 0x8B67
|
||||
#define GL_FLOAT_MAT3x4 0x8B68
|
||||
#define GL_FLOAT_MAT4x2 0x8B69
|
||||
#define GL_FLOAT_MAT4x3 0x8B6A
|
||||
#define GL_SRGB 0x8C40
|
||||
#define GL_SRGB8 0x8C41
|
||||
#define GL_SRGB8_ALPHA8 0x8C43
|
||||
#define GL_COMPARE_REF_TO_TEXTURE 0x884E
|
||||
#define GL_MAJOR_VERSION 0x821B
|
||||
#define GL_MINOR_VERSION 0x821C
|
||||
#define GL_NUM_EXTENSIONS 0x821D
|
||||
#define GL_RGBA32F 0x8814
|
||||
#define GL_RGB32F 0x8815
|
||||
#define GL_RGBA16F 0x881A
|
||||
#define GL_RGB16F 0x881B
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
|
||||
#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
|
||||
#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
|
||||
#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
|
||||
#define GL_MAX_VARYING_COMPONENTS 0x8B4B
|
||||
#define GL_TEXTURE_2D_ARRAY 0x8C1A
|
||||
#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
|
||||
#define GL_R11F_G11F_B10F 0x8C3A
|
||||
#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
|
||||
#define GL_RGB9_E5 0x8C3D
|
||||
#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
|
||||
#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
|
||||
#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
|
||||
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
|
||||
#define GL_RASTERIZER_DISCARD 0x8C89
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
|
||||
#define GL_INTERLEAVED_ATTRIBS 0x8C8C
|
||||
#define GL_SEPARATE_ATTRIBS 0x8C8D
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
|
||||
#define GL_RGBA32UI 0x8D70
|
||||
#define GL_RGB32UI 0x8D71
|
||||
#define GL_RGBA16UI 0x8D76
|
||||
#define GL_RGB16UI 0x8D77
|
||||
#define GL_RGBA8UI 0x8D7C
|
||||
#define GL_RGB8UI 0x8D7D
|
||||
#define GL_RGBA32I 0x8D82
|
||||
#define GL_RGB32I 0x8D83
|
||||
#define GL_RGBA16I 0x8D88
|
||||
#define GL_RGB16I 0x8D89
|
||||
#define GL_RGBA8I 0x8D8E
|
||||
#define GL_RGB8I 0x8D8F
|
||||
#define GL_RED_INTEGER 0x8D94
|
||||
#define GL_RGB_INTEGER 0x8D98
|
||||
#define GL_RGBA_INTEGER 0x8D99
|
||||
#define GL_SAMPLER_2D_ARRAY 0x8DC1
|
||||
#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
|
||||
#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
|
||||
#define GL_UNSIGNED_INT_VEC2 0x8DC6
|
||||
#define GL_UNSIGNED_INT_VEC3 0x8DC7
|
||||
#define GL_UNSIGNED_INT_VEC4 0x8DC8
|
||||
#define GL_INT_SAMPLER_2D 0x8DCA
|
||||
#define GL_INT_SAMPLER_3D 0x8DCB
|
||||
#define GL_INT_SAMPLER_CUBE 0x8DCC
|
||||
#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
|
||||
#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
|
||||
#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
|
||||
#define GL_BUFFER_ACCESS_FLAGS 0x911F
|
||||
#define GL_BUFFER_MAP_LENGTH 0x9120
|
||||
#define GL_BUFFER_MAP_OFFSET 0x9121
|
||||
#define GL_DEPTH_COMPONENT32F 0x8CAC
|
||||
#define GL_DEPTH32F_STENCIL8 0x8CAD
|
||||
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
|
||||
#define GL_FRAMEBUFFER_DEFAULT 0x8218
|
||||
#define GL_FRAMEBUFFER_UNDEFINED 0x8219
|
||||
#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
|
||||
#define GL_DEPTH_STENCIL 0x84F9
|
||||
#define GL_UNSIGNED_INT_24_8 0x84FA
|
||||
#define GL_DEPTH24_STENCIL8 0x88F0
|
||||
#define GL_UNSIGNED_NORMALIZED 0x8C17
|
||||
#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
|
||||
#define GL_READ_FRAMEBUFFER 0x8CA8
|
||||
#define GL_DRAW_FRAMEBUFFER 0x8CA9
|
||||
#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
|
||||
#define GL_RENDERBUFFER_SAMPLES 0x8CAB
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
|
||||
#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
|
||||
#define GL_COLOR_ATTACHMENT1 0x8CE1
|
||||
#define GL_COLOR_ATTACHMENT2 0x8CE2
|
||||
#define GL_COLOR_ATTACHMENT3 0x8CE3
|
||||
#define GL_COLOR_ATTACHMENT4 0x8CE4
|
||||
#define GL_COLOR_ATTACHMENT5 0x8CE5
|
||||
#define GL_COLOR_ATTACHMENT6 0x8CE6
|
||||
#define GL_COLOR_ATTACHMENT7 0x8CE7
|
||||
#define GL_COLOR_ATTACHMENT8 0x8CE8
|
||||
#define GL_COLOR_ATTACHMENT9 0x8CE9
|
||||
#define GL_COLOR_ATTACHMENT10 0x8CEA
|
||||
#define GL_COLOR_ATTACHMENT11 0x8CEB
|
||||
#define GL_COLOR_ATTACHMENT12 0x8CEC
|
||||
#define GL_COLOR_ATTACHMENT13 0x8CED
|
||||
#define GL_COLOR_ATTACHMENT14 0x8CEE
|
||||
#define GL_COLOR_ATTACHMENT15 0x8CEF
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
|
||||
#define GL_MAX_SAMPLES 0x8D57
|
||||
#define GL_HALF_FLOAT 0x140B
|
||||
#define GL_MAP_READ_BIT 0x0001
|
||||
#define GL_MAP_WRITE_BIT 0x0002
|
||||
#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
|
||||
#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
|
||||
#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
|
||||
#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
|
||||
#define GL_RG 0x8227
|
||||
#define GL_RG_INTEGER 0x8228
|
||||
#define GL_R8 0x8229
|
||||
#define GL_RG8 0x822B
|
||||
#define GL_R16F 0x822D
|
||||
#define GL_R32F 0x822E
|
||||
#define GL_RG16F 0x822F
|
||||
#define GL_RG32F 0x8230
|
||||
#define GL_R8I 0x8231
|
||||
#define GL_R8UI 0x8232
|
||||
#define GL_R16I 0x8233
|
||||
#define GL_R16UI 0x8234
|
||||
#define GL_R32I 0x8235
|
||||
#define GL_R32UI 0x8236
|
||||
#define GL_RG8I 0x8237
|
||||
#define GL_RG8UI 0x8238
|
||||
#define GL_RG16I 0x8239
|
||||
#define GL_RG16UI 0x823A
|
||||
#define GL_RG32I 0x823B
|
||||
#define GL_RG32UI 0x823C
|
||||
#define GL_VERTEX_ARRAY_BINDING 0x85B5
|
||||
#define GL_R8_SNORM 0x8F94
|
||||
#define GL_RG8_SNORM 0x8F95
|
||||
#define GL_RGB8_SNORM 0x8F96
|
||||
#define GL_RGBA8_SNORM 0x8F97
|
||||
#define GL_SIGNED_NORMALIZED 0x8F9C
|
||||
#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
|
||||
#define GL_COPY_READ_BUFFER 0x8F36
|
||||
#define GL_COPY_WRITE_BUFFER 0x8F37
|
||||
#define GL_COPY_READ_BUFFER_BINDING 0x8F36
|
||||
#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
|
||||
#define GL_UNIFORM_BUFFER 0x8A11
|
||||
#define GL_UNIFORM_BUFFER_BINDING 0x8A28
|
||||
#define GL_UNIFORM_BUFFER_START 0x8A29
|
||||
#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
|
||||
#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
|
||||
#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
|
||||
#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
|
||||
#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
|
||||
#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
|
||||
#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
|
||||
#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
|
||||
#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
|
||||
#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
|
||||
#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
|
||||
#define GL_UNIFORM_TYPE 0x8A37
|
||||
#define GL_UNIFORM_SIZE 0x8A38
|
||||
#define GL_UNIFORM_NAME_LENGTH 0x8A39
|
||||
#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
|
||||
#define GL_UNIFORM_OFFSET 0x8A3B
|
||||
#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
|
||||
#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
|
||||
#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
|
||||
#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
|
||||
#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
|
||||
#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
|
||||
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
|
||||
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
|
||||
#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
|
||||
#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
|
||||
#define GL_INVALID_INDEX 0xFFFFFFFFu
|
||||
#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
|
||||
#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
|
||||
#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
|
||||
#define GL_OBJECT_TYPE 0x9112
|
||||
#define GL_SYNC_CONDITION 0x9113
|
||||
#define GL_SYNC_STATUS 0x9114
|
||||
#define GL_SYNC_FLAGS 0x9115
|
||||
#define GL_SYNC_FENCE 0x9116
|
||||
#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
|
||||
#define GL_UNSIGNALED 0x9118
|
||||
#define GL_SIGNALED 0x9119
|
||||
#define GL_ALREADY_SIGNALED 0x911A
|
||||
#define GL_TIMEOUT_EXPIRED 0x911B
|
||||
#define GL_CONDITION_SATISFIED 0x911C
|
||||
#define GL_WAIT_FAILED 0x911D
|
||||
#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
|
||||
#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
|
||||
#define GL_ANY_SAMPLES_PASSED 0x8C2F
|
||||
#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
|
||||
#define GL_SAMPLER_BINDING 0x8919
|
||||
#define GL_RGB10_A2UI 0x906F
|
||||
#define GL_TEXTURE_SWIZZLE_R 0x8E42
|
||||
#define GL_TEXTURE_SWIZZLE_G 0x8E43
|
||||
#define GL_TEXTURE_SWIZZLE_B 0x8E44
|
||||
#define GL_TEXTURE_SWIZZLE_A 0x8E45
|
||||
#define GL_GREEN 0x1904
|
||||
#define GL_BLUE 0x1905
|
||||
#define GL_INT_2_10_10_10_REV 0x8D9F
|
||||
#define GL_TRANSFORM_FEEDBACK 0x8E22
|
||||
#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
|
||||
#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
|
||||
#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
|
||||
#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
|
||||
#define GL_PROGRAM_BINARY_LENGTH 0x8741
|
||||
#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
|
||||
#define GL_PROGRAM_BINARY_FORMATS 0x87FF
|
||||
#define GL_COMPRESSED_R11_EAC 0x9270
|
||||
#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
|
||||
#define GL_COMPRESSED_RG11_EAC 0x9272
|
||||
#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
|
||||
#define GL_COMPRESSED_RGB8_ETC2 0x9274
|
||||
#define GL_COMPRESSED_SRGB8_ETC2 0x9275
|
||||
#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
|
||||
#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
|
||||
#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
|
||||
#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
|
||||
#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
|
||||
#define GL_MAX_ELEMENT_INDEX 0x8D6B
|
||||
#define GL_NUM_SAMPLE_COUNTS 0x9380
|
||||
#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
|
||||
GL_APICALL void GL_APIENTRY glReadBuffer (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
|
||||
GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids);
|
||||
GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id);
|
||||
GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id);
|
||||
GL_APICALL void GL_APIENTRY glEndQuery (GLenum target);
|
||||
GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params);
|
||||
GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params);
|
||||
GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
|
||||
GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length);
|
||||
GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array);
|
||||
GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays);
|
||||
GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array);
|
||||
GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data);
|
||||
GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode);
|
||||
GL_APICALL void GL_APIENTRY glEndTransformFeedback (void);
|
||||
GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer);
|
||||
GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
|
||||
GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params);
|
||||
GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0);
|
||||
GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1);
|
||||
GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2);
|
||||
GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
|
||||
GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value);
|
||||
GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value);
|
||||
GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
|
||||
GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index);
|
||||
GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
|
||||
GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
|
||||
GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
|
||||
GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
|
||||
GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync);
|
||||
GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync);
|
||||
GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
|
||||
GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
|
||||
GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data);
|
||||
GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
|
||||
GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params);
|
||||
GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers);
|
||||
GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler);
|
||||
GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler);
|
||||
GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param);
|
||||
GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param);
|
||||
GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param);
|
||||
GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor);
|
||||
GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id);
|
||||
GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids);
|
||||
GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id);
|
||||
GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void);
|
||||
GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
|
||||
GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
|
||||
GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value);
|
||||
GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments);
|
||||
GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
|
||||
GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
|
||||
#endif /* GL_ES_VERSION_3_0 */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,30 +0,0 @@
|
||||
#ifndef __gl3platform_h_
|
||||
#define __gl3platform_h_
|
||||
|
||||
/* $Revision: 18437 $ on $Date:: 2012-07-08 23:31:39 -0700 #$ */
|
||||
|
||||
/*
|
||||
* This document is licensed under the SGI Free Software B License Version
|
||||
* 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
|
||||
*/
|
||||
|
||||
/* Platform-specific types and definitions for OpenGL ES 3.X gl3.h
|
||||
*
|
||||
* Adopters may modify khrplatform.h and this file to suit their platform.
|
||||
* You are encouraged to submit all modifications to the Khronos group so that
|
||||
* they can be included in future versions of this file. Please submit changes
|
||||
* by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
|
||||
* by filing a bug against product "OpenGL-ES" component "Registry".
|
||||
*/
|
||||
|
||||
#include <KHR/khrplatform.h>
|
||||
|
||||
#ifndef GL_APICALL
|
||||
#define GL_APICALL KHRONOS_APICALL
|
||||
#endif
|
||||
|
||||
#ifndef GL_APIENTRY
|
||||
#define GL_APIENTRY KHRONOS_APIENTRY
|
||||
#endif
|
||||
|
||||
#endif /* __gl3platform_h_ */
|
||||
Reference in New Issue
Block a user