adding NO_PROCESSING
(i.e. just preview) mode
This commit is contained in:
parent
016011fdf8
commit
43b76e548b
@ -79,6 +79,7 @@ void dumpCLinfo()
|
||||
cl::Context theContext;
|
||||
cl::CommandQueue theQueue;
|
||||
cl::Program theProgB2B, theProgI2B, theProgI2I;
|
||||
bool haveOpenCL = false;
|
||||
|
||||
void initCL()
|
||||
{
|
||||
@ -100,6 +101,7 @@ void initCL()
|
||||
|
||||
try
|
||||
{
|
||||
haveOpenCL = false;
|
||||
cl::Platform p = cl::Platform::getDefault();
|
||||
std::string ext = p.getInfo<CL_PLATFORM_EXTENSIONS>();
|
||||
if(ext.find("cl_khr_gl_sharing") == std::string::npos)
|
||||
@ -124,6 +126,7 @@ void initCL()
|
||||
LOGD("OpenCV+OpenCL works OK!");
|
||||
else
|
||||
LOGE("Can't init OpenCV with OpenCL TAPI");
|
||||
haveOpenCL = true;
|
||||
}
|
||||
catch(cl::Error& e)
|
||||
{
|
||||
@ -147,6 +150,8 @@ void closeCL()
|
||||
#define GL_TEXTURE_2D 0x0DE1
|
||||
void procOCL_I2I(int texIn, int texOut, int w, int h)
|
||||
{
|
||||
if(!haveOpenCL) return;
|
||||
|
||||
LOGD("procOCL_I2I(%d, %d, %d, %d)", texIn, texOut, w, h);
|
||||
cl::ImageGL imgIn (theContext, CL_MEM_READ_ONLY, GL_TEXTURE_2D, 0, texIn);
|
||||
cl::ImageGL imgOut(theContext, CL_MEM_WRITE_ONLY, GL_TEXTURE_2D, 0, texOut);
|
||||
@ -179,6 +184,8 @@ void procOCL_I2I(int texIn, int texOut, int w, int h)
|
||||
|
||||
void procOCL_OCV(int tex, int w, int h)
|
||||
{
|
||||
if(!haveOpenCL) return;
|
||||
|
||||
int64_t t = getTimeMs();
|
||||
cl::ImageGL imgIn (theContext, CL_MEM_READ_ONLY, GL_TEXTURE_2D, 0, tex);
|
||||
std::vector < cl::Memory > images(1, imgIn);
|
||||
|
@ -63,9 +63,9 @@ GLuint FBO = 0;
|
||||
GLuint texOES = 0;
|
||||
int texWidth = 0, texHeight = 0;
|
||||
|
||||
enum ProcMode {PROC_MODE_CPU=1, PROC_MODE_OCL_DIRECT=2, PROC_MODE_OCL_OCV=3};
|
||||
enum ProcMode {PROC_MODE_NO_PROC=0, PROC_MODE_CPU=1, PROC_MODE_OCL_DIRECT=2, PROC_MODE_OCL_OCV=3};
|
||||
|
||||
ProcMode procMode = PROC_MODE_CPU;
|
||||
ProcMode procMode = PROC_MODE_NO_PROC;
|
||||
|
||||
static inline void deleteTex(GLuint* tex)
|
||||
{
|
||||
@ -298,6 +298,7 @@ extern "C" void drawFrame()
|
||||
|
||||
switch(procMode)
|
||||
{
|
||||
case PROC_MODE_NO_PROC: drawFrameOrig(); break;
|
||||
case PROC_MODE_CPU: drawFrameProcCPU(); break;
|
||||
case PROC_MODE_OCL_DIRECT: drawFrameProcOCL(); break;
|
||||
case PROC_MODE_OCL_OCV: drawFrameProcOCLOCV(); break;
|
||||
@ -366,6 +367,7 @@ extern "C" void setProcessingMode(int mode)
|
||||
{
|
||||
switch(mode)
|
||||
{
|
||||
case PROC_MODE_NO_PROC: procMode = PROC_MODE_NO_PROC; break;
|
||||
case PROC_MODE_CPU: procMode = PROC_MODE_CPU; break;
|
||||
case PROC_MODE_OCL_DIRECT: procMode = PROC_MODE_OCL_DIRECT; break;
|
||||
case PROC_MODE_OCL_OCV: procMode = PROC_MODE_OCL_OCV; break;
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<group android:checkableBehavior="single">
|
||||
<item android:id="@+id/no_proc" android:title="No processing" />
|
||||
<item android:id="@+id/cpu" android:title="Use CPU code" />
|
||||
<item android:id="@+id/ocl_direct" android:title="Use OpenCL direct" />
|
||||
<item android:id="@+id/ocl_ocv" android:title="Use OpenCL via OpenCV" />
|
||||
|
@ -7,6 +7,7 @@ public class NativeGLRenderer {
|
||||
System.loadLibrary("JNIrender");
|
||||
}
|
||||
|
||||
public static final int PROCESSING_MODE_NO_PROCESSING = 0;
|
||||
public static final int PROCESSING_MODE_CPU = 1;
|
||||
public static final int PROCESSING_MODE_OCL_DIRECT = 2;
|
||||
public static final int PROCESSING_MODE_OCL_OCV = 3;
|
||||
|
@ -34,11 +34,11 @@ public class Tutorial4Activity extends Activity {
|
||||
mProcMode = (TextView)findViewById(R.id.proc_mode_text_view);
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
mProcMode.setText("Processing mode: CPU");
|
||||
mProcMode.setText("Processing mode: No processing");
|
||||
}
|
||||
});
|
||||
|
||||
NativeGLRenderer.setProcessingMode(NativeGLRenderer.PROCESSING_MODE_CPU); }
|
||||
NativeGLRenderer.setProcessingMode(NativeGLRenderer.PROCESSING_MODE_NO_PROCESSING); }
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
@ -62,6 +62,14 @@ public class Tutorial4Activity extends Activity {
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.no_proc:
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
mProcMode.setText("Processing mode: No Processing");
|
||||
}
|
||||
});
|
||||
NativeGLRenderer.setProcessingMode(NativeGLRenderer.PROCESSING_MODE_NO_PROCESSING);
|
||||
return true;
|
||||
case R.id.cpu:
|
||||
runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user