Can a texture be updated in background thread but printed in foreground thread?
In webRTC, in SurfaceTextureHelper the surfaceTexture (with handle the creation/update of the openGL texture) is created inside a background thread:
final HandlerThread thread = new HandlerThread(threadName);
thread.start();
an inside this newly created thread we do
oesTextureId = GlUtil.generateTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
surfaceTexture = new SurfaceTexture(oesTextureId);
The problem is that the OnFrameAvailableListener of the surfacetexture will be called in the thread where the surfacetexture was created (seam logical). My problem is that all the painting of my app are done in the main UI thread (and I can not change this), so here I end up by something where the texture will be updated in background thread (texture of GL_TEXTURE_EXTERNAL_OES) but will be print on the foreground thread.
Is it possible that it's will work ? textureID never change, just the content of the texture get updated in the bakcground thread
android opengl-es webrtc opengl-es-2.0
add a comment |
In webRTC, in SurfaceTextureHelper the surfaceTexture (with handle the creation/update of the openGL texture) is created inside a background thread:
final HandlerThread thread = new HandlerThread(threadName);
thread.start();
an inside this newly created thread we do
oesTextureId = GlUtil.generateTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
surfaceTexture = new SurfaceTexture(oesTextureId);
The problem is that the OnFrameAvailableListener of the surfacetexture will be called in the thread where the surfacetexture was created (seam logical). My problem is that all the painting of my app are done in the main UI thread (and I can not change this), so here I end up by something where the texture will be updated in background thread (texture of GL_TEXTURE_EXTERNAL_OES) but will be print on the foreground thread.
Is it possible that it's will work ? textureID never change, just the content of the texture get updated in the bakcground thread
android opengl-es webrtc opengl-es-2.0
add a comment |
In webRTC, in SurfaceTextureHelper the surfaceTexture (with handle the creation/update of the openGL texture) is created inside a background thread:
final HandlerThread thread = new HandlerThread(threadName);
thread.start();
an inside this newly created thread we do
oesTextureId = GlUtil.generateTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
surfaceTexture = new SurfaceTexture(oesTextureId);
The problem is that the OnFrameAvailableListener of the surfacetexture will be called in the thread where the surfacetexture was created (seam logical). My problem is that all the painting of my app are done in the main UI thread (and I can not change this), so here I end up by something where the texture will be updated in background thread (texture of GL_TEXTURE_EXTERNAL_OES) but will be print on the foreground thread.
Is it possible that it's will work ? textureID never change, just the content of the texture get updated in the bakcground thread
android opengl-es webrtc opengl-es-2.0
In webRTC, in SurfaceTextureHelper the surfaceTexture (with handle the creation/update of the openGL texture) is created inside a background thread:
final HandlerThread thread = new HandlerThread(threadName);
thread.start();
an inside this newly created thread we do
oesTextureId = GlUtil.generateTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES);
surfaceTexture = new SurfaceTexture(oesTextureId);
The problem is that the OnFrameAvailableListener of the surfacetexture will be called in the thread where the surfacetexture was created (seam logical). My problem is that all the painting of my app are done in the main UI thread (and I can not change this), so here I end up by something where the texture will be updated in background thread (texture of GL_TEXTURE_EXTERNAL_OES) but will be print on the foreground thread.
Is it possible that it's will work ? textureID never change, just the content of the texture get updated in the bakcground thread
android opengl-es webrtc opengl-es-2.0
android opengl-es webrtc opengl-es-2.0
edited Nov 23 '18 at 7:35
Rabbid76
33.5k113045
33.5k113045
asked Nov 23 '18 at 6:18
loki
2,70221147
2,70221147
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53441496%2fcan-a-texture-be-updated-in-background-thread-but-printed-in-foreground-thread%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53441496%2fcan-a-texture-be-updated-in-background-thread-but-printed-in-foreground-thread%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown