@Override public Class[] getValidAnnotationTypes(Class type) { Class[] valid_types; if (Buffer.class.isAssignableFrom(type) || PointerBuffer.class.isAssignableFrom(type)) valid_types = getValidBufferTypes(type); else if (type.isPrimitive()) valid_types = getValidPrimitiveTypes(type); else if (String.class.equals(type)) valid_types = new Class[] {cl_byte.class}; else if (org.lwjgl.PointerWrapper.class.isAssignableFrom(type)) valid_types = new Class[] {PointerWrapper.class}; else if (ByteBuffer[].class == type) valid_types = new Class[] {cl_char.class, cl_uchar.class}; else if (void.class.equals(type)) valid_types = new Class[] {GLreturn.class}; else valid_types = new Class[] {}; return valid_types; }