Stream API: rename createAcquiredImage => transformAcquiredImage.

This commit is contained in:
Philip Rideout
2019-11-13 13:01:35 -08:00
parent c0b9900cdc
commit 2c13c8fe6e
4 changed files with 10 additions and 9 deletions

View File

@@ -91,6 +91,10 @@ public:
virtual void destroyExternalTextureStorage(ExternalTexture* ets) noexcept = 0;
// The method allows platforms to convert a user-supplied external image object into a new type
// (e.g. HardwareBuffer => EGLImage). It makes sense for the default implementation to do nothing.
virtual AcquiredImage transformAcquiredImage(AcquiredImage source) noexcept { return source; }
// called to bind the platform-specific externalImage to a texture
// texture points to a OpenGLDriver::GLTexture
virtual bool setExternalImage(void* externalImage, void* texture) noexcept {
@@ -108,12 +112,6 @@ public:
// called once before a SAMPLER_EXTERNAL texture is destroyed.
virtual void destroyExternalImage(void* texture) noexcept {}
// allows platforms to convert the given image object into a new type (e.g. HardwareBuffer => EGLImage)
// by default, performs no conversion.
virtual AcquiredImage createAcquiredImage(void* hwbuffer, backend::StreamCallback cb, void* userData) noexcept {
return {hwbuffer, cb, userData};
}
};
} // namespace backend

View File

@@ -1209,7 +1209,7 @@ void OpenGLDriver::setAcquiredImage(Handle<HwStream> sh, void* hwbuffer,
scheduleRelease(std::move(glstream->user_thread.pending));
slog.w << "Acquired image is set more than once per frame." << io::endl;
}
glstream->user_thread.pending = mPlatform.createAcquiredImage(hwbuffer, cb, userData);
glstream->user_thread.pending = mPlatform.transformAcquiredImage({hwbuffer, cb, userData});
}
void OpenGLDriver::updateStreams(DriverApi* driver) {

View File

@@ -542,7 +542,10 @@ void PlatformEGL::destroyExternalImage(void* texture) noexcept {
glDeleteTextures(1, &t->gl.id);
}
backend::AcquiredImage PlatformEGL::createAcquiredImage(void* hwbuffer, backend::StreamCallback userCallback, void* userData) noexcept {
backend::AcquiredImage PlatformEGL::transformAcquiredImage(backend::AcquiredImage source) noexcept {
void* const hwbuffer = source.image;
const backend::StreamCallback userCallback = source.callback;
void* const userData = source.userData;
// Convert the AHardwareBuffer to EGLImage.
EGLClientBuffer clientBuffer = eglGetNativeClientBufferANDROID((const AHardwareBuffer*) hwbuffer);

View File

@@ -69,7 +69,7 @@ public:
void createExternalImageTexture(void* texture) noexcept final;
void destroyExternalImage(void* texture) noexcept final;
backend::AcquiredImage createAcquiredImage(void* hwbuffer, backend::StreamCallback cb, void* userData) noexcept final;
backend::AcquiredImage transformAcquiredImage(backend::AcquiredImage source) noexcept final;
int getOSVersion() const noexcept final;