package com.amd.aparapi.test;
import com.amd.aparapi.Kernel;
public class ObjectArrayMemberHierarchy extends Kernel{
final static int size = 16;
static class DummyParent{
int intField;
public DummyParent() {
intField = -3;
}
public int getIntField() {
return intField;
}
public void setIntField(int x) {
intField = x;
}
public int foo() {
return 42 + getIntField();
}
};
final static class DummyOOA extends DummyParent{
float floatField;
public float getFloatField() {
return floatField;
}
public void setFloatField(float x) {
floatField = x;
}
};
int something;
DummyOOA dummy[] = null;
public ObjectArrayMemberHierarchy() {
something = -1;
dummy = new DummyOOA[size];
dummy[0] = new DummyOOA();
}
public int getSomething() {
return something;
}
public int bar(int x) {
return -x;
}
public void run() {
int myId = getGlobalId();
dummy[myId].intField = dummy[myId].getIntField() + 2 + getSomething();
dummy[myId].setFloatField(dummy[myId].floatField + (float) 2.0);
}
}
/**{OpenCL{
typedef struct com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA_s{
float floatField;
int intField;
} com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA;
typedef struct This_s{
int something;
__global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *dummy;
int passid;
}This;
int get_pass_id(This *this){
return this->passid;
}
void com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA__setFloatField( __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *this, float x){
this->floatField=x;
return;
}
int com_amd_aparapi_test_ObjectArrayMemberHierarchy__getSomething(This *this){
return(this->something);
}
int com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyParent__getIntField( __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *this){
return(this->intField);
}
__kernel void run(
int something,
__global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *dummy,
int passid
){
This thisStruct;
This* this=&thisStruct;
this->something = something;
this->dummy = dummy;
this->passid = passid;
{
int myId = get_global_id(0);
this->dummy[myId].intField=(com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyParent__getIntField( &(this->dummy[myId])) + 2) + com_amd_aparapi_test_ObjectArrayMemberHierarchy__getSomething(this);
com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA__setFloatField( &(this->dummy[myId]), (this->dummy[myId].floatField + 2.0f));
return;
}
}
}OpenCL}**/