Browse Source

[plugin] Add embedder_texture glesv2

embedder_texture
Vitaliy Zarubin 1 year ago
parent
commit
013245d9bb
  1. 1
      example/aurora/rpm/ru.auroraos.flutter_example_packages.spec
  2. 7
      packages/embedder_texture/aurora/CMakeLists.txt
  3. 18
      packages/embedder_texture/aurora/embedder_texture_plugin.cpp

1
example/aurora/rpm/ru.auroraos.flutter_example_packages.spec

@ -10,6 +10,7 @@ Source0: %{name}-%{version}.tar.zst
BuildRequires: cmake
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(flutter-embedder)
%description

7
packages/embedder_texture/aurora/CMakeLists.txt

@ -16,11 +16,14 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3")
find_package(PkgConfig REQUIRED)
pkg_check_modules(FlutterEmbedder REQUIRED IMPORTED_TARGET flutter-embedder)
pkg_check_modules(GLES REQUIRED IMPORTED_TARGET glesv2)
add_library(${PLUGIN_NAME} SHARED embedder_texture_plugin.cpp)
add_library(${PLUGIN_NAME} SHARED
embedder_texture_plugin.cpp
)
set_target_properties(${PLUGIN_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden)
target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::FlutterEmbedder)
target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::FlutterEmbedder PkgConfig::GLES)
target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_compile_definitions(${PLUGIN_NAME} PRIVATE PLUGIN_IMPL)

18
packages/embedder_texture/aurora/embedder_texture_plugin.cpp

@ -7,6 +7,16 @@
#include <flutter/platform-methods.h>
#include <sys/utsname.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
const GLfloat pixels[] = {
1, 0, 0,
0, 1, 0,
0, 0, 1,
1, 1, 1
};
void EmbedderTexturePlugin::RegisterWithRegistrar(PluginRegistrar &registrar)
{
registrar.RegisterMethodChannel("embedder_texture",
@ -33,7 +43,13 @@ void EmbedderTexturePlugin::onMethodCall(const MethodCall &call)
void EmbedderTexturePlugin::onCreate(const MethodCall &call)
{
call.SendSuccessResponse(0);
unsigned int texture_id = 0;
glGenTextures(1, &texture_id);
glBindTexture(GL_TEXTURE_2D, texture_id);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 2, 2, 0, GL_RGB, GL_FLOAT, pixels);
call.SendSuccessResponse(texture_id);
}
void EmbedderTexturePlugin::onRemove(const MethodCall &call)

Loading…
Cancel
Save