compute should be partially implemented at this time. Change-Id: Iddf9405cc69513b708975d20783395f0be04c680
157 lines
3.4 KiB
C++
157 lines
3.4 KiB
C++
/*
|
|
* Copyright (C) 2008-2012 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef ANDROID_RENDERSCRIPT_H
|
|
#define ANDROID_RENDERSCRIPT_H
|
|
|
|
|
|
#include <pthread.h>
|
|
#include <utils/String8.h>
|
|
#include <utils/Vector.h>
|
|
|
|
#include "rs.h"
|
|
|
|
class Element;
|
|
class Type;
|
|
class Allocation;
|
|
|
|
class RenderScript {
|
|
friend class BaseObj;
|
|
friend class Allocation;
|
|
friend class Element;
|
|
friend class Type;
|
|
friend class Script;
|
|
friend class ScriptC;
|
|
|
|
public:
|
|
RenderScript();
|
|
virtual ~RenderScript();
|
|
|
|
typedef void (*ErrorHandlerFunc_t)(uint32_t errorNum, const char *errorText);
|
|
typedef void (*MessageHandlerFunc_t)(uint32_t msgNum, const void *msgData, size_t msgLen);
|
|
|
|
|
|
void setErrorHandler(ErrorHandlerFunc_t func);
|
|
ErrorHandlerFunc_t getErrorHandler() {return mErrorFunc;}
|
|
|
|
void setMessageHandler(MessageHandlerFunc_t func);
|
|
MessageHandlerFunc_t getMessageHandler() {return mMessageFunc;}
|
|
|
|
bool init(int targetApi);
|
|
void contextDump();
|
|
void finish();
|
|
|
|
private:
|
|
static bool gInitialized;
|
|
static pthread_mutex_t gInitMutex;
|
|
|
|
pthread_t mMessageThreadId;
|
|
pid_t mNativeMessageThreadId;
|
|
bool mMessageRun;
|
|
|
|
RsDevice mDev;
|
|
RsContext mContext;
|
|
|
|
ErrorHandlerFunc_t mErrorFunc;
|
|
MessageHandlerFunc_t mMessageFunc;
|
|
|
|
struct {
|
|
Element *U8;
|
|
Element *I8;
|
|
Element *U16;
|
|
Element *I16;
|
|
Element *U32;
|
|
Element *I32;
|
|
Element *U64;
|
|
Element *I64;
|
|
Element *F32;
|
|
Element *F64;
|
|
Element *BOOLEAN;
|
|
|
|
Element *ELEMENT;
|
|
Element *TYPE;
|
|
Element *ALLOCATION;
|
|
Element *SAMPLER;
|
|
Element *SCRIPT;
|
|
Element *MESH;
|
|
Element *PROGRAM_FRAGMENT;
|
|
Element *PROGRAM_VERTEX;
|
|
Element *PROGRAM_RASTER;
|
|
Element *PROGRAM_STORE;
|
|
|
|
Element *A_8;
|
|
Element *RGB_565;
|
|
Element *RGB_888;
|
|
Element *RGBA_5551;
|
|
Element *RGBA_4444;
|
|
Element *RGBA_8888;
|
|
|
|
Element *FLOAT_2;
|
|
Element *FLOAT_3;
|
|
Element *FLOAT_4;
|
|
|
|
Element *DOUBLE_2;
|
|
Element *DOUBLE_3;
|
|
Element *DOUBLE_4;
|
|
|
|
Element *UCHAR_2;
|
|
Element *UCHAR_3;
|
|
Element *UCHAR_4;
|
|
|
|
Element *CHAR_2;
|
|
Element *CHAR_3;
|
|
Element *CHAR_4;
|
|
|
|
Element *USHORT_2;
|
|
Element *USHORT_3;
|
|
Element *USHORT_4;
|
|
|
|
Element *SHORT_2;
|
|
Element *SHORT_3;
|
|
Element *SHORT_4;
|
|
|
|
Element *UINT_2;
|
|
Element *UINT_3;
|
|
Element *UINT_4;
|
|
|
|
Element *INT_2;
|
|
Element *INT_3;
|
|
Element *INT_4;
|
|
|
|
Element *ULONG_2;
|
|
Element *ULONG_3;
|
|
Element *ULONG_4;
|
|
|
|
Element *LONG_2;
|
|
Element *LONG_3;
|
|
Element *LONG_4;
|
|
|
|
Element *MATRIX_4X4;
|
|
Element *MATRIX_3X3;
|
|
Element *MATRIX_2X2;
|
|
} mElements;
|
|
|
|
|
|
|
|
void throwError(const char *err) const;
|
|
|
|
static void * threadProc(void *);
|
|
|
|
};
|
|
|
|
#endif
|
|
|