Switching arm64 linux version to use OpenGLES 3.0, and made MSAA work on OpenGLES 3.0

This commit is contained in:
Yousef Khadadeh 2025-08-20 11:17:05 +03:00
parent a140e69b21
commit cbc567562e
5 changed files with 23 additions and 5 deletions

View file

@ -103,7 +103,7 @@ modules:
- -DSKIA_PARAGRAPH_LIB=/app/Skia/out/Static/libskparagraph.a
- -DCMAKE_BUILD_TYPE=Release
- -DTBB_NOT_ONETBB=ON
- -DGRAPHICS_BACKEND=OpenGL2.1
- -DGRAPHICS_BACKEND=OpenGLES3.0
sources:
- type: dir
# branch: master

View file

@ -311,7 +311,11 @@ void DrawingProgramCache::refresh_draw_cache(const std::shared_ptr<DrawingProgra
bvhNode->drawCache = std::nullopt; // Ensure drawCache is nullopt, so that the draw_components_to_canvas function doesnt use it while drawing
}
else {
SkImageInfo imgInfo = SkImageInfo::MakeN32Premul(bvhNode->resolution.x(), bvhNode->resolution.y());
#ifdef USE_BACKEND_OPENGLES_3_0
SkImageInfo imgInfo = SkImageInfo::Make(bvhNode->resolution.x(), bvhNode->resolution.y(), kRGBA_8888_SkColorType, kPremul_SkAlphaType);
#else
SkImageInfo imgInfo = SkImageInfo::MakeN32Premul(mS.m->window.size.x(), mS.m->window.size.y());
#endif
#ifdef USE_SKIA_BACKEND_GRAPHITE
drawCache.surface = SkSurfaces::RenderTarget(drawP.world.main.window.recorder(), imgInfo, skgpu::Mipmapped::kNo, drawP.world.main.window.defaultMSAASurfaceProps);
#elif USE_SKIA_BACKEND_GANESH

View file

@ -40,7 +40,11 @@ void EyeDropperTool::gui_toolbox() {
void EyeDropperTool::tool_update() {
if(drawP.controls.leftClick) {
SkSurfaceProps props;
SkImageInfo imgInfo = SkImageInfo::MakeN32Premul(drawP.world.main.window.size.x(), drawP.world.main.window.size.y());
#ifdef USE_BACKEND_OPENGLES_3_0
SkImageInfo imgInfo = SkImageInfo::Make(drawP.world.main.window.size.x(), drawP.world.main.window.size.y(), kRGBA_8888_SkColorType, kPremul_SkAlphaType);
#else
SkImageInfo imgInfo = SkImageInfo::MakeN32Premul(mS.m->window.size.x(), mS.m->window.size.y());
#endif
#ifdef USE_SKIA_BACKEND_GRAPHITE
sk_sp<SkSurface> surface = SkSurfaces::RenderTarget(drawP.world.main.window.recorder(), imgInfo, skgpu::Mipmapped::kNo, &props);
#elif USE_SKIA_BACKEND_GANESH

View file

@ -119,7 +119,11 @@ void ScreenshotTool::take_screenshot(const std::filesystem::path& filePath) {
std::vector<uint8_t> finalImgRawData(imageByteSize);
SkPixmap finalImgData(finalImgInfo, finalImgRawData.data(), imageRowSize);
SkImageInfo imgInfo = SkImageInfo::MakeN32Premul(drawP.world.main.window.size.x(), drawP.world.main.window.size.y());
#ifdef USE_BACKEND_OPENGLES_3_0
SkImageInfo imgInfo = SkImageInfo::Make(drawP.world.main.window.size.x(), drawP.world.main.window.size.y(), kRGBA_8888_SkColorType, kPremul_SkAlphaType);
#else
SkImageInfo imgInfo = SkImageInfo::MakeN32Premul(mS.m->window.size.x(), mS.m->window.size.y());
#endif
#ifdef USE_SKIA_BACKEND_GRAPHITE
sk_sp<SkSurface> surface = SkSurfaces::RenderTarget(drawP.world.main.window.recorder(), imgInfo, skgpu::Mipmapped::kNo, &drawP.world.main.window.defaultMSAASurfaceProps);
#elif USE_SKIA_BACKEND_GANESH

View file

@ -5,6 +5,8 @@
#include <SDL3/SDL_hints.h>
#include <SDL3/SDL_oldnames.h>
#include <filesystem>
#include <include/core/SkAlphaType.h>
#include <include/core/SkColorType.h>
#ifdef USE_BACKEND_OPENGL
#ifndef __EMSCRIPTEN__
#ifdef USE_BACKEND_OPENGLES_3_0
@ -265,7 +267,11 @@ void sdl_terminate(MainStruct& mS) {
void resize_window(MainStruct& mS) {
// Having intermediate surface allows for changing options more easily
SkImageInfo imgInfo = SkImageInfo::MakeN32Premul(mS.m->window.size.x(), mS.m->window.size.y());
#ifdef USE_BACKEND_OPENGLES_3_0
SkImageInfo imgInfo = SkImageInfo::Make(mS.m->window.size.x(), mS.m->window.size.y(), kRGBA_8888_SkColorType, kPremul_SkAlphaType);
#else
SkImageInfo imgInfo = SkImageInfo::MakeN32Premul(mS.m->window.size.x(), mS.m->window.size.y());
#endif
#ifdef USE_SKIA_BACKEND_GRAPHITE
mS.intermediateSurface = SkSurfaces::RenderTarget(mS.vulkanWindowContext->graphiteRecorder(), imgInfo, skgpu::Mipmapped::kNo, &mS.m->window.defaultMSAASurfaceProps);
#elif USE_SKIA_BACKEND_GANESH