CrossBridge es un conjunto de herramientas de código abierto desarrollado por Adobe Systems , que compila de forma cruzada código C y C++ para ejecutarse en Adobe Flash Player o Adobe AIR . [1] Los proyectos compilados con CrossBridge se ejecutan hasta 10 veces más rápido que los proyectos ActionScript 3. [2] [3] [4] [5] [6] CrossBridge también era conocido como "Alchemy" y "Flash Runtime C++ Compiler", o "FlasCC". [7] [8] [9]
CrossBridge utiliza códigos de operación de acceso a memoria de alto rendimiento en Flash Player (conocidos como "Domain Memory") para trabajar con datos en memoria rápidamente. [10] CrossBridge utiliza LLVM y GCC como backends del compilador para compilar código C++, optimizarlo y transformarlo para que se ejecute dentro de AVM2 ( ActionScript Virtual Machine 2 ). Los programas creados con CrossBridge son hasta 10 veces más rápidos que el código ActionScript normal, [4] [5] [6] pero hasta 2 a 10 veces más lentos que el código C++ nativo. [11]
CrossBridge puede generar películas Flash Player ( archivos .swf ) o bibliotecas Flash ( archivos .swc ), que luego pueden usarse en proyectos más grandes escritos en ActionScript 3 y compilados utilizando el Apache Flex SDK gratuito (anteriormente Adobe Flex SDK). CrossBridge también utiliza la aceleración de renderizado 3D basada en GPU presente en Flash Player 11 (conocida como Stage3D ). [12]
Utilizando CrossBridge, Adobe adaptó OpenGL para su uso dentro de Flash Player Stage3D y lo lanzó como un proyecto de código abierto en 2012. [13] El lenguaje de programación Lua (versión 5.1) también fue adaptado para ejecutarse en Flash Player utilizando CrossBridge y lanzado en Google Code. [14] Los proyectos compilados con CrossBridge también permitieron ejecutar el procesamiento de señales digitales del lado del cliente en tiempo real, [15] incluyendo la transformada rápida de Fourier y la transformada wavelet de sombrero mexicano .
En 2008, Adobe lanzó CrossBridge como "Project Alchemy" en el sitio web de Adobe Labs . Permitió la compilación de proyectos C++ especialmente modificados en formato SWF, utilizando los compiladores LLVM y GCC. [7]
En 2012, en un intento de monetizar Flash Player, Adobe restringió el uso de las funciones Stage3D y Domain Memory de Flash Player bajo la marca "Funciones Premium". Las "Funciones Premium" fueron licenciadas para su uso y los editores debían pagar regalías a Adobe por su uso. [16] Project Alchemy fue lanzado comercialmente como Flash Runtime C++ Compiler. [9]
En 2013, Adobe publicó en código abierto el compilador Flash Runtime C++ como CrossBridge y lo publicó en el sitio web de alojamiento de código GitHub . [17] Las "Funciones Premium" también se hicieron gratuitas y ya no requerían licencias ni regalías. [18]