Android OpenGLES рендеринга в текстуру

Я пишу графические приложения для iPhone, и яхочу перенести мое последнее приложениеСлои» на платформу Android. Layers - это приложение для рисования, которое позволяет пользователям рисовать на экране и создавать многослойные рисунки с различными кистями, цветами и т. Д. И экспортировать в PSD. Это'у него есть синхронизация с рабочим столом, инструмент для размазывания, много всего хорошего ...http://www.layersforiphone.com/

Я начал смотреть на платформу Android в понедельник, и яМы столкнулись с серьезной проблемой. Я использую OpenGL для рисования, потому что он предлагает лучшую производительность. Однако есть несколько мест, где мне нужно визуализировать текстуру, а затем использовать текстуру. Например:

Используйте текстуру кисти и линию спрайтов, чтобы создать черную мазку в текстуре AПоместите кисть color + alpha в glColor4f и затем нарисуйте текстуру A на экране.

На iPhone я делаю это постоянно как пользовательs палец двигается, и я могу достичь 12-15 кадров в секунду на iPod Touch 1-го поколения. Это'необходимо, потому что применение цвета и альфа-канала к отдельным спрайтам, составляющим мазок кисти, нене дает правильного результата (поскольку спрайты перекрываются и делают штрих слишком темным).

Платформа Android поддерживает OpenGL ES 1.0, но, похоже, не использует ключевые функции для работы с кадровыми буферами. Я могу'Найти способ связать текстуру с кадровым буфером и нарисовать ее с помощью OpenGL.

Вот'как яЯ обычно делаю это на iPhone:

// generate a secondary framebuffer and bind it to OpenGL so we don't mess with existing output.
glGenFramebuffers(1, &compositingFramebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, compositingFramebuffer);

// attach a texture to the framebuffer.
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, 0);

// subsequent drawing operations are rendered into the texture

// restore the primary framebuffer and (possibly) draw the rendered texture
glBindFramebuffer(GL_FRAMEBUFFER, originalActiveFramebuffer);

Есть ли что-нибудь подобное на платформе Android? На iPhone OpenGL значительно быстрее, чем программный рисунок и является единственным жизнеспособным решением (поверьте мне - я тоже написал приложение для рисования CoreGraphics ...). Может бытьДругой путь, который я мог бы взять на Android? Я'Я готов прыгать через любые обручи, но я выигралт публиковать приложение, если производительность нехорошо (10 кадров в секунду + как вырисую на экране)

Ответы на вопрос(1)

Ваш ответ на вопрос