Расширения OpenGL, доступные на различных [закрытых] устройствах на базе Android

48
задан MH114 19 January 2010 в 13:05
поделиться

9 ответов

Расширения OpenGL ES на HTC Hero (Android 1. 5):

  • GL_ARB_texture_env_combine
  • GL_ARB_texture_env_crossbar
  • GL_ARB_texture_env_dot3
  • GL_ARB_texture_mirrored_repeat
  • GL_ARB_vertex_buffer_object
  • GL_ATI_extended_texture_coordinate_data_formats
  • GL_ATI_imageon_misc
  • GL_ATI_texture_compression_atitc
  • GL_EXT_blend_equation_separate
  • GL_EXT_blend_func_separate
  • GL_EXT_blend_minmax
  • GL_EXT_blend_subtract
  • GL_EXT_stencil_wrap
  • GL_OES_byte_coordinates
  • GL_OES_compressed_paletted_texture
  • GL_OES_draw_texture
  • GL_OES_fixed_point
  • GL_OES_matrix_palette
  • GL_OES_point_size_array
  • GL_OES_point_sprite
  • GL_OES_read_format
  • GL_OES_single_precision
  • GL_OES_vertex_buffer_object
  • GL_QUALCOMM_vertex_buffer_object
  • GL_QUALCOMM_direct_texture
3
ответ дан 26 November 2019 в 19:01
поделиться

Расширения OpenGL ES на Nexus One (Android 2. 1):

  • GL_AMD_compressed_3DC_texture
  • GL_AMD_compressed_ATC_texture
  • GL_ARB_texture_env_combine
  • GL_ARB_texture_env_dot3
  • GL_ARB_texture_mirrored_repeat
  • GL_ARB_vertex_buffer_object
  • GL_ATI_compressed_texture_atitc
  • GL_ATI_texture_compression_atitc
  • GL_EXT_blend_equation_separate
  • GL_EXT_blend_func_separate
  • GL_EXT_blend_minmax
  • GL_EXT_blend_subtract
  • GL_EXT_stencil_wrap
  • GL_OES_EGL_image
  • GL_OES_blend_equation_separate
  • GL_OES_blend_func_separate
  • GL_OES_blend_subtract
  • GL_OES_compressed_ETC1_RGB8_texture
  • GL_OES_compressed_paletted_texture
  • GL_OES_draw_texture
  • GL_OES_extended_matrix_palette
  • GL_OES_framebuffer_object
  • GL_OES_matrix_palette
  • GL_OES_point_size_array
  • GL_OES_point_sprite
  • GL_OES_read_format
  • GL_OES_stencil_wrap
  • GL_OES_texture_cube_map
  • GL_OES_texture_env_crossbar
  • GL_OES_texture_mirrored_repeat
5
ответ дан 26 November 2019 в 19:01
поделиться

расширения OpenGL ES на HTC G1 (Android 1. Версия 6):

  • GL_ARB_texture_env_combine
  • GL_ARB_texture_env_crossbar
  • GL_ARB_texture_env_dot3
  • GL_ARB_texture_mirrored_repeat
  • GL_ARB_vertex_buffer_object
  • GL_ATI_extended_texture_coordinate_data_formats
  • GL_ATI_imageon_misc
  • GL_ATI_texture_compression_atitc
  • GL_EXT_blend_equation_separate
  • GL_EXT_blend_func_separate
  • GL_EXT_blend_minmax
  • GL_EXT_blend_subtract
  • GL_EXT_stencil_wrap
  • GL_OES_byte_coordinates
  • GL_OES_compressed_paletted_texture
  • GL_OES_draw_texture
  • GL_OES_fixed_point
  • GL_OES_matrix_palette
  • GL_OES_point_size_array
  • GL_OES_point_sprite
  • GL_OES_read_format
  • GL_OES_single_precision
  • GL_OES_vertex_buffer_object
  • GL_QUALCOMM_vertex_buffer_object
  • GL_QUALCOMM_direct_texture

OpenGL ES на HTC G1 (Android 1.6):

  • OpenGL ES 1.0 CM

я включаю версию, как восстановлено:
gl.glGetString (GL10. GL_VERSION)

Это довольно интересно в этом, это не следует спецификации. Профиль должен быть перед номером. Он также необходим для определения возможностей. Например, Droid не сообщает о поддержке VBO в списке расширений. Однако он сообщает о версии OpenGL ES 1.1. Это означает, что он поддерживает VBO, потому что VBO были сделаны обязательными в версии 1.1.

7
ответ дан 26 November 2019 в 19:01
поделиться

Интернет-планшет Archos 5 под управлением Android 1.6:

GL_VERSION:

  • OpenGL ES-CM 1.0

GL_EXTENSIONS:

  • GL_OES_byte_coordinates
  • GL_OES_fixed_point
  • GL_OES_single_precision
  • GL_OES_read_format
  • GL_OES_compressed_paletted_texture
  • GL_OES_draw_texture
  • GL_OES_matrix_get
  • GL_OES_query_matrix
  • GL_ARB_texture_compression
  • GL_ARB_texture_non_power_of_two
  • GL_ANDROID_direct_texture
  • GL_ANDROID_user_clip_plane
  • GL_ANDROID_vertex_buffer_object
  • GL_ANDROID_generate_mipmap

GL_RENDERER:

  • Android PixelFlinger 1. 0

GL_VENDOR:

  • Android

GL_ALIASED_POINT_SIZE_RANGE:

  • 0, 134217727

GL_SMOOTH_POINT_SIZE_RANGE:

  • 0, 2048

Видимо, это означает отсутствие аппаратного ускорения OpenGL.

3
ответ дан 26 November 2019 в 19:01
поделиться

Когда я проходил курс компилятора в колледже, я вообще не понимал FIRST и FOLLOWING. Я реализовал алгоритмы, описанные в книге Dragon, но понятия не имел, что происходит. Думаю, сейчас.

Я предполагаю, что у вас есть книга, которая дает формальное определение этих двух наборов, и книга совершенно непонятна. Я постараюсь дать их неофициальное описание, и надеюсь, это поможет вам понять, что в вашей книге.

Аппарат FIRST - это набор терминалов, который можно рассматривать как первую часть расширения нетерминала. Аппарат FOLLOWING - это набор терминалов, который можно увидеть после расширения нетерминала.

В вашей первой грамматике имеется только три типа терминалов: = , * и id . (Можно также считать клеммой символ конца ввода $ .) Единственными нетерминалами являются S (оператор) и L (Lvalue - «вещь», которой можно присвоить).

Рассмотрим FIRST (S) как набор нетерминалов, которые могут запустить оператор. Интуитивно известно, что оператор не начинается с = . Так что вы не ожидаете, что это появится в FIRST (S).

Как начинается утверждение? Существует два правила производства, которые определяют, как выглядит S , и оба они начинаются с L . Итак, чтобы выяснить, что в FIRST (S), вы действительно должны посмотреть на то, что в FIRST (L). Существует два правила производства, которые определяют, как выглядит Lvalue: оно либо начинается с * , либо с id . Итак, FIRST (S) = FIRST (L) = { * , id }.

ДАЛЕЕ (S) легко. Ничто не следует за S , потому что это символ начала. Таким образом, единственное, что в FOLLOWS (S), это $ , символ конца ввода.

НИЖЕ (L) немного сложнее. Необходимо просмотреть каждое производственное правило, в котором отображается L , и посмотреть, что наступит после него. В первом правиле видно, что = может следовать L . Таким образом, = находится в СЛЕДУЮЩЕМ (L). Однако в этом правиле также отмечается, что в конце производственного правила имеется еще один L . Так что другая вещь, которая может следовать за L , это все, что может следовать за этим производством. Мы уже выяснили, что единственное, что может следовать за производством S , - это конец ввода. Итак, СЛЕДУЕТ (L) = { = , $ }. (Если вы посмотрите на другие правила производства, L всегда появляется в конце их, так что вы просто получите $ из них.)

Посмотрите на это Простое объяснение , и пока игнорировать все вещи о ϵ, потому что у вас нет производственный, которые содержат пустую строку. В разделе «Правила для первых наборов» правила # 1, # 3 и # 4.1 должны иметь смысл. В разделе «Правила для следующих наборов»правила # 1, # 2 и # 3 должны иметь смысл.

Ситуация усложняется, если в правилах производства имеется ϵ. Предположим, у вас есть что-то подобное:

D -> S C T id = V  // Declaration is [Static] [Const] Type id = Value
S -> static | ϵ    // The 'static' keyword is optional
C -> const | ϵ     // The 'const' keyword is optional
T -> int | float   // The Type is mandatory and is either 'int' or 'float'
V -> ...           // The Value gets complicated, not important here.

Теперь, если вы хотите вычислить FIRST (D), вы не можете просто посмотреть на FIRST (S), потому что S может быть «пустым». Интуитивно известно, что FIRST (D) является { статическим , const , int , float }. Эта интуиция кодифицирована в правиле № 4.2. Рассмотрим SCT в этом примере как Y1Y2Y3 в правилах «Простое объяснение».

Если вы хотите вычислить FOLLOWES (S), вы не можете просто посмотреть на FIRST (C), потому что это может быть пустым, поэтому вы также должны посмотреть на FIRST (T). Итак, СЛЕДУЕТ (S) = { const , int , float }. Вы получаете это, применяя «Правила для следующих наборов» # 2 и # 4 (более или менее).

Я надеюсь, что это поможет и что вы сможете выяснить ПЕРВЫЙ и СЛЕДУЮЩИЙ для второй грамматики самостоятельно.

Если это помогает, R представляет значение Rvalue - вещь, которой нельзя присвоить, например константу или литерал. Lvalue также может действовать как Rvalue (но не как другие пути вокруг).

a = 2;  // a is an lvalue, 2 is an rvalue
a = b;  // a is an lvalue, b is an lvalue, but in this context it's an rvalue
2 = a;  // invalid because 2 cannot be an lvalue
2 = 3;  // invalid, same reason.
*4 = b; // Valid!  You would almost never write code like this, but it is
        // grammatically correct: dereferencing an Rvalue gives you an Lvalue.
-121--3802264-

Только что получил Droid под управлением Android 2.0.1.

GL_EXTENSIONS:

  • GL_OES_byte_coordinates
  • GL_OES_fixed_point
  • GL_OES_single_precision
  • GL_OES_matrix_get
  • GL_OES_read_format
  • GL_OES_compressed_paletted_texture
  • GL_OES_point_sprite
  • GL_OES_point_size_array
  • GL_OES_matrix_palette
  • GL_OES_draw_texture
  • GL_OES_query_matrix
  • GL_OES_texture_env_crossbar
  • GL_OES_texture_mirrored_repeat
  • GL_OES_texture_cube_map
  • GL_OES_blend_subtract
  • GL_OES_blend_func_separate
  • GL_OES_blend_equation_separate
  • GL_OES_stencil_wrap
  • GL_OES_extended_matrix_palette
  • GL_OES_framebuffer_object
  • GL_OES_rgb8_rgba8
  • GL_OES_depth24
  • GL_OES_stencil8
  • GL_OES_compressed_ETC1_RGB8_texture
  • GL_OES_mapbuffer
  • GL_OES_EGL_image
  • GL_EXT_multi_draw_arrays
  • GL_OES_required_internalformat
  • GL_IMG_read_format
  • GL_IMG_texture_compression_pvrtc
  • GL_IMG_texture_format_BGRA8888
  • GL_EXT_texture_format_BGRA8888
  • GL_IMG_texture_stream
  • GL_IMG_vertex_program

GL_VERSION:

  • OpenGL ES-CM 1.1

GL_RENDERER:

  • PowerVR SGX 530

GL_VENDOR:

  • Imagination Technologies

GL_ALIASED_POINT_SIZE_RANGE:

  • 1, 32

GL_SMOOTH_POINT_SIZE_RANGE:

  • 1, 1
4
ответ дан 26 November 2019 в 19:01
поделиться

Информация о OpenGL ES для HTC Desire (AU)

GL_EXTENSIONS:

  • GL_AMD_compressed_3DC_texture
  • GL_AMD_compressed_ATC_texture
  • GL_ARB_texture_env_combine
  • GL_ARB_texture_env_dot3
  • GL_ARB_texture_mirrored_repeat
  • GL_ARB_vertex_buffer_object
  • GL_ATI_compressed_texture_atitc
  • GL_ATI_texture_compression_atitc
  • GL_EXT_blend_equation_separate
  • GL_EXT_blend_func_separate
  • GL_EXT_blend_minmax
  • GL_EXT_blend_subtract
  • GL_EXT_stencil_wrap GL_OES_EGL_image
  • GL_OES_blend_equation_separate
  • GL_OES_blend_func_separate
  • GL_OES_blend_subtract
  • GL_OES_compressed_ETC1_RGB8_texture
  • GL_OES_compressed_paletted_texture
  • GL_OES_draw_texture
  • GL_OES_extended_matrix_palette
  • GL_OES_framebuffer_object
  • GL_OES_matrix_palette
  • GL_OES_point_size_array
  • GL_OES_point_sprite
  • GL_OES_read_format
  • GL_OES_stencil_wrap
  • GL_OES_texture_cube_map
  • GL_OES_texture_env_crossbar
  • GL_OES_texture_mirrored_repeat

GL_VERSION:

  • OpenGL ES-CM 1. 1

GL_RENDERER:

  • Adreno

GL_VENDOR:

  • Qualcomm
5
ответ дан 26 November 2019 в 19:01
поделиться

Вот информация для Samsung GT-I5700 (Spica / Galaxy Spica) с Android 1.5:

GL_VERSION:

  • 1.1 (lib version 11.02. 72)

GL_RENDERER:

  • FIMG

GL_VENDOR:

  • Samsung Electronics

GL_EXTENSIONS:

  • GL_OES_matrix_palette
  • GL_OES_draw_texture
  • GL_OES_framebuffer_object
  • GL_OES_matrix_get
  • GL_ARB_texture_non_power_of_two
4
ответ дан 26 November 2019 в 19:01
поделиться

Вот HTC Evo 4G под управлением Android 2.1-update1 (спасибо Google IO):

GL_VERSION:

  • OpenGL ES-CM 1. 1

GL_EXTENSIONS:

  • GL_AMD_compressed_3DC_texture
  • GL_AMD_compressed_ATC_texture
  • GL_ARB_texture_env_combine
  • GL_ARB_texture_env_dot3
  • GL_ARB_texture_mirrored_repeat
  • GL_ARB_vertex_buffer_object
  • GL_ATI_compressed_texture_atitc
  • GL_ATI_texture_compression_atitc
  • GL_EXT_blend_equation_separate
  • GL_EXT_blend_func_separate
  • GL_EXT_blend_minmax
  • GL_EXT_blend_subtract
  • GL_EXT_stencil_wrap
  • GL_OES_EGL_image
  • GL_OES_blend_equation_separate
  • GL_OES_blend_func_separate
  • GL_OES_blend_subtract
  • GL_OES_compressed_ETC1_RGB8_texture
  • GL_OES_compressed_paletted_texture
  • GL_OES_draw_texture
  • GL_OES_extended_matrix_palette
  • GL_OES_framebuffer_object
  • GL_OES_matrix_palette
  • GL_OES_point_size_array
  • GL_OES_point_sprite
  • GL_OES_read_format
  • GL_OES_stencil_wrap
  • GL_OES_texture_cube_map
  • GL_OES_texture_env_crossbar
  • GL_OES_texture_mirrored_repeat

GL_RENDERER:

  • Adreno

GL_VENDOR:

  • Qualcomm

GL_ALIASED_POINT_SIZE_RANGE:

  • 1, 128

GL_SMOOTH_POINT_SIZE_RANGE:

  • 1, 128

Я думал, что производительность будет дублировать производительность Nexus. В конце концов, у него тот же рендерер/процессор. Экран TFT вместо OLED, но разрешение такое же. Однако одна из моих игр, которая на N1 занимает 16-18 мс на кадр, на этом устройстве занимает 33-34 мс. Я еще не выяснил, почему. Число выглядит подозрительно, как если бы экран работал на частоте 30 Гц, а не 60 Гц. Однако я еще не подтвердил это.

6
ответ дан 26 November 2019 в 19:01
поделиться

Похоже, Дейв Вебб прав.

Вот что у меня есть с оригинальным Droid с Android 2.1, что отличается от того, что было сообщено здесь для Droid с Android 2.0.1.

Версия GL

  • OpenGL ES 2. 0

GL Vendor

  • Imagination Technologies

GL Renderer

  • PowerVR SGX 530

GL Extensions

  • GL_OES_rgb8_rgba8
  • GL_OES_depth24
  • GL_OES_vertex_half_float
  • GL_OES_texture_float
  • GL_OES_texture_half_float
  • GL_OES_element_index_uint
  • GL_OES_mapbuffer
  • GL_OES_fragment_precision_high
  • GL_OES_compressed_ETC1_RGB8_texture
  • GL_OES_EGL_image
  • GL_OES_required_internalformat
  • GL_OES_depth_texture
  • GL_OES_get_program_binary
  • GL_OES_packed_depth_stencil
  • GL_OES_standard_derivatives
  • GL_EXT_multi_draw_arrays
  • GL_EXT_texture_format_BGRA8888
  • GL_EXT_discard_framebuffer
  • GL_IMG_shader_binary
  • GL_IMG_texture_compression_pvrtc
  • GL_IMG_texture_stream2
  • GL_IMG_texture_npot
  • GL_IMG_texture_format_BGRA8888
  • GL_IMG_read_format
  • GL_IMG_program_binary
  • GL_IMG_vertex_array_object
4
ответ дан 26 November 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: