11ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#ifndef ANDROID_RS_SCRIPT_GROUP_BASE_H
21ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#define ANDROID_RS_SCRIPT_GROUP_BASE_H
31ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
41ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#include "rsObjectBase.h"
51ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
61ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ninamespace android {
71ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ninamespace renderscript {
81ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
91ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niclass ScriptGroupBase : public ObjectBase {
101ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni public:
111ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  ScriptGroupBase(Context* rsc) : ObjectBase(rsc) {}
121ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  virtual ~ScriptGroupBase() {}
131ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
141ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  virtual void serialize(Context *rsc, OStream *stream) const {}
151ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
161ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  virtual RsA3DClassID getClassId() const {
171ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    return RS_A3D_CLASS_ID_SCRIPT_GROUP;
181ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  }
191ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
201ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  enum SG_API_Version {
211ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    SG_V1 = 10,
221ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    SG_V2 = 20,
231ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  };
241ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
251ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  virtual void execute(Context *rsc) = 0;
261ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  virtual SG_API_Version getApiVersion() const = 0;
271ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
281ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  struct Hal {
291ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    void * drv;
301ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
311ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    struct DriverInfo {
321ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    };
331ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    DriverInfo info;
341ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  };
351ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  Hal mHal;
361ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni};
371ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
381ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni}  // namespace renderscript
391ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni}  // namespace android
401ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
411ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#endif  // ANDROID_RS_SCRIPT_GROUP_BASE_H
42