ArkGraphics 2D

Last updated

ArkGraphics 2D
Developer(s) Huawei
Initial releaseMarch 30, 2024;3 months ago (2024-03-30)
Written in JS, NAPI C++,C, HarmonyOS Runtime/API: ArkTS, Cangjie with ArkUI
Operating system HarmonyOS, OpenHarmony, Oniro OS
Platform 64-bit ARM, RISC-V, x86, x64, Lingxi
Type Software engine
License Open Source, Apache License

ArkGraphics 2D is an open source 2D graphics stack for OpenHarmony-Oniro based and HarmonyOS operating systems. The engine layer includes two modules, such as 2D graphics library and 3D graphics engine with both OpenGL with OpenGL Shading Language and WebGL as render service backend. The 2D graphics library provides the underlying API for 2D graphics rendering, and supports the underlying capabilities of graphics rendering and text rendering for ArkUI. [1] [2]

Contents

Overview

ArkUI allows for 2D drawing, animations, event handling, Service Card widgets, and data binding, in the environment of 2D computer graphics. ArkUI automatically synchronizes between UI views and data from ArkTS on OpenHarmony 4.1 API 11 version, alongside native HarmonyOS NEXT software system development for HarmonyOS [3] [4] [5] [6] [7]

The layered description of the OpenHarmony graphics stack such as Interface layer: Provides native API capabilities for graphics, including WebGL, Native Drawing drawing capabilities for JS APIs, OpenGL instruction-level drawing capabilities support for NAPI C++, C programming languages, etc. Alongside, the Framework layer that is divided into five modules such as Render Service, Drawing, Animation, Effect, Display and Memory Management. [8]

See also

Related Research Articles

<span class="mw-page-title-main">OpenGL</span> Cross-platform graphics API

OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

<span class="mw-page-title-main">Graphics Device Interface</span> Microsoft Windows API

The Graphics Device Interface (GDI) is a legacy component of Microsoft Windows responsible for representing graphical objects and transmitting them to output devices such as monitors and printers. It was superseded by DirectDraw API and later Direct2D API. Windows apps use Windows API to interact with GDI, for such tasks as drawing lines and curves, rendering fonts, and handling palettes. The Windows USER subsystem uses GDI to render such UI elements as window frames and menus. Other systems have components that are similar to GDI; for example: Mac OS has QuickDraw, and Linux and Unix have X Window System core protocol.

Quartz 2D is the native two-dimensional graphics rendering API for macOS and iOS platforms, part of the Core Graphics framework.

<span class="mw-page-title-main">QuickDraw 3D</span> 3D graphics API developed by Apple Inc.

QuickDraw 3D, or QD3D for short, is a 3D graphics API developed by Apple Inc. starting in 1995, originally for their Macintosh computers, but delivered as a cross-platform system.

GLX is an extension to the X Window System core protocol providing an interface between OpenGL and the X Window System as well as extensions to OpenGL itself. It enables programs wishing to use OpenGL to do so within a window provided by the X Window System. GLX distinguishes two "states": indirect state and direct state.

In Apple's macOS operating system, Quartz is the Quartz 2D and Quartz Compositor part of the Core Graphics framework. Quartz includes both a 2D renderer in Core Graphics and the composition engine that sends instructions to the graphics card. Because of this vertical nature, Quartz is often synonymous with Core Graphics.

Cairo (graphics) Vector graphics-based software library

Cairo is an open-source graphics library that provides a vector graphics-based, device-independent API for software developers. It provides primitives for two-dimensional drawing across a number of different backends. Cairo uses hardware acceleration when available.

<span class="mw-page-title-main">OpenGL ES</span> Subset of the OpenGL API for embedded systems

OpenGL for Embedded Systems is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".

<span class="mw-page-title-main">Xgl</span> Display server implementation

Xgl is an obsolete display server implementation supporting the X Window System protocol designed to take advantage of modern graphics cards via their OpenGL drivers, layered on top of OpenGL. It supports hardware acceleration of all X, OpenGL and XVideo applications and graphical effects by a compositing window manager such as Compiz or Beryl. The project was started by David Reveman of Novell and first released on January 2, 2006. It was removed from the X.org server in favor of AIGLX on June 12, 2008.

<span class="mw-page-title-main">C4 Engine</span> Proprietary computer game engine developed by Terathon Software

The C4 Engine is a proprietary computer game engine developed by Terathon Software that is used to create 3D games and other types of interactive virtual simulations for PlayStation 5, PlayStation 4, PlayStation 3, Windows, Mac OS X, Linux, and iOS.

<span class="mw-page-title-main">Skia Graphics Engine</span> Open source graphics library written in C++

The Skia Graphics Engine or Skia is an open-source 2D graphics library written in C++. Skia abstracts away platform-specific graphics APIs. Skia Inc. originally developed the library; Google acquired it in 2005, and then released the software as open source licensed under the New BSD free software license in 2008.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics, image processing, and effects in the HTML canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

<span class="mw-page-title-main">EGL (API)</span> Application programming interface

EGL is an interface between Khronos rendering APIs and the underlying native platform windowing system. EGL handles graphics context management, surface/buffer binding, rendering synchronization, and enables "high-performance, accelerated, mixed-mode 2D and 3D rendering using other Khronos APIs." EGL is managed by the non-profit technology consortium Khronos Group.

<span class="mw-page-title-main">Marmalade (software)</span>

Marmalade SDK was a cross-platform software development kit and game engine from Marmalade Technologies Limited that contains library files, samples, documentation and tools required to develop, test and deploy applications for mobile devices.

ANGLE is an open source, cross-platform graphics engine abstraction layer developed by Google. ANGLE translates OpenGL ES 2/3 calls to DirectX 9, 11, OpenGL or Vulkan API calls. It's a portable version of OpenGL but with limitations of OpenGL ES standard.

Vulkan is a low-level, low-overhead cross-platform API and open standard for 3D graphics and computing. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and operating systems, and it is also designed to work with modern multi-core CPUs.

HarmonyOS NEXT is a proprietary distributed operating system and an iteration of HarmonyOS, developed by Huawei to support only HarmonyOS native apps. The operating system is primarily aimed at software and hardware developers that deal directly with Huawei. It does not include Android's AOSP core and is incompatible with Android applications.

Huawei Ark Engine is a conglomerate of proprietary application programming interfaces (APIs) for handling tasks related to system and multimedia, especially game programming and video, on HarmonyOS and OpenHarmony platform such as software graphics engine stack, ArkGraphics 2D for 2D computer graphics, 2D Drawing high-performance and ArkGraphics 3D graphics engine stack that support standard OpenGL and Vulkan backend, interactive graphics with ArkUI binding support, multimedia engine for audio and video, memory engine, scheduling engine, storage engine and low power consumption engine.

ArkGraphics 3D is an open source, 3D graphic stack developed by Huawei as a subset of Ark Engine for HarmonyOS and OpenAtom OpenHarmony. The engine layer includes two modules, such as 2D graphics library and 3D graphics engine with OpenGL with OpenGL Shading Language, WebGL and Vulkan as render service backend. The 2D graphics library provides the underlying API for 2D graphics rendering, and supports the underlying capabilities of graphics rendering and text rendering for ArkUI. AGP Engine as a component of ArkUI, it provides the 3D drawing capability of the system.

ArkUI is a declarative based user interface framework for building user interfaces on native HarmonyOS, OpenHarmony alongside Oniro OS applications developed by Huawei for the ArkTS and Cangjie programming language.

References

  1. "HarmonyOS 4 announced with modernized look, new customization options and Live Windows". MobGsm. Retrieved February 15, 2024.
  2. "OpenAtom OpenHarmony". docs.openharmony.cn. Retrieved April 14, 2024.
  3. Parker, Victoria (January 26, 2024). "HDC Technical Sub-forum: A comprehensive look at HarmonyOS 'next-generation UI Framework". Mo4Tech. Retrieved February 13, 2024.
  4. Sarkar, Amy (April 25, 2023). "HarmonyOS 3.1 Beta 2 rolling out". HC Newsroom. Retrieved February 13, 2024.
  5. "What is "ArkWeb" for HarmonyOS NEXT?". Substack. LivingInHarmony Blog. Retrieved February 15, 2024.
  6. "ArkGraphics 2D graphics library API for HarmonyOS NEXT". Substack. LivingInHarmony Blog. February 15, 2024. Retrieved February 15, 2024.
  7. "ArkGraphics 2D graphics library API for HarmonyOS NEXT -". harmonyoshub.com. April 10, 2024. Retrieved April 14, 2024.
  8. "OpenHarmony/graphic_graphic_2d". Gitee (in Chinese (China)). Retrieved May 24, 2024.