2014-12-16 3 views
2

На платформе Android (API-19) я хотел бы скопировать буфер с прямым байтом в выделение сценария рендеринга. Можно ли улучшить следующий код, например, используя NDK?Кодировка размещения RenderScript для Android из NIO Direct ByteBuffer

final ByteBuffer buffer = ...src; 

final byte[] bytes; 
if (buffer.hasArray()) { 
    bytes = buffer.array(); 
} else { 
    bytes = new byte[buffer.capacity()]; 
    buffer.get(bytes); 
    buffer.rewind(); 
} 
allocation.copyFromUnchecked(bytes); 

ответ

0

К сожалению, нет. API не создаются там, где вы можете предоставить хранилище резервных данных для Allocation или даже получить буфер на основе NIO, который создал Allocation. Самое близкое, что вы могли бы использовать, было бы иметь Bitmap на основе Allocation, который был создан с помощью USAGE_SHARED, чтобы его можно было синхронизировать как различия, а не как полную копию.

+0

Спасибо за ответ. –

+0

Как насчет использования JNI? Android NDK для API-19 содержит файлы заголовков для Render Script (android-ndk-r9d/platform/android-19/arch-arm/usr/include/rs) –

Смежные вопросы