diff --git a/.gitignore b/.gitignore
index cd2dc6cf479f202003ab3969bbba4a9b3062a24a..00eb3958c79939cedf86ea0ec4b79527be0eec8a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,9 +27,8 @@ project.xcworkspace
node_modules/
npm-debug.log
-
# android
-
+#
android/build/
android/.gradle/
android/.idea/
diff --git a/.npmignore b/.npmignore
index 5c5952bf978a6a6b6d130dd274b33623ec85c4f5..c38d9c95f623ad46c1e6c297ade76f78d9cb75bb 100644
--- a/.npmignore
+++ b/.npmignore
@@ -28,3 +28,14 @@ DerivedData
#
node_modules/
npm-debug.log
+
+# android
+#
+android/build/
+android/.gradle/
+android/.idea/
+android/android.iml
+android/gradle/
+android/gradlew
+android/gradlew.bat
+android/local.properties
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index 8c7dc862e596504f528495923035c02223950909..c170c5b36e9da8c13c99af572a6cadb4b001924a 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -1,2 +1,3 @@
+
diff --git a/android/src/main/java/com/projectseptember/RNGL/GLCanvasManager.java b/android/src/main/java/com/projectseptember/RNGL/GLCanvasManager.java
index 0946910d6edcb79ac010ede38414cd91f321f339..ce0070a5e699a2515c6a86a5b1fb1afc9e32106f 100644
--- a/android/src/main/java/com/projectseptember/RNGL/GLCanvasManager.java
+++ b/android/src/main/java/com/projectseptember/RNGL/GLCanvasManager.java
@@ -1,17 +1,16 @@
package com.projectseptember.RNGL;
-import java.util.Arrays;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import android.opengl.GLSurfaceView;
-import com.facebook.react.ReactPackage;
-import com.facebook.react.bridge.NativeModule;
-import com.facebook.react.bridge.ReactApplicationContext;
-import com.facebook.react.uimanager.ViewManager;
-import com.facebook.react.bridge.JavaScriptModule;
+import com.facebook.react.uimanager.CatalystStylesDiffMap;
+import com.facebook.react.uimanager.SimpleViewManager;
+import com.facebook.react.uimanager.ThemedReactContext;
-public class GLCanvasManager extends SimpleViewManager {
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
+
+public class GLCanvasManager extends SimpleViewManager {
public static final String REACT_CLASS = "GLCanvas";
@@ -23,14 +22,32 @@ public class GLCanvasManager extends SimpleViewManager {
}
@Override
- public GLCanvasView createViewInstance(ThemedReactContext context) {
- return new GLCanvasView(context, Fresco.newDraweeControllerBuilder(), mCallerContext);
+ public GLSurfaceView createViewInstance(ThemedReactContext context) {
+ GLSurfaceView view = new GLSurfaceView(context);
+ view.setRenderer(new GLSurfaceView.Renderer() {
+ @Override
+ public void onSurfaceCreated(GL10 gl, EGLConfig config) {
+
+ }
+
+ @Override
+ public void onSurfaceChanged(GL10 gl, int width, int height) {
+ gl.glViewport(0, 0, width, height);
+ }
+
+ @Override
+ public void onDrawFrame(GL10 gl) {
+ gl.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+ }
+ });
+ return view;
}
@Override
- public void updateView(final ReactImageView view, final CatalystStylesDiffMap props) {
+ public void updateView(final GLSurfaceView view, final CatalystStylesDiffMap props) {
super.updateView(view, props);
// TODO... call setters with props
- view.maybeUpdateView();
+ // view.requestRender();
}
}
diff --git a/android/src/main/java/com/projectseptember/RNGL/RNGLContext.java b/android/src/main/java/com/projectseptember/RNGL/RNGLContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..b29b07a18c1241d1d405391a98780a881fecad45
--- /dev/null
+++ b/android/src/main/java/com/projectseptember/RNGL/RNGLContext.java
@@ -0,0 +1,25 @@
+package com.projectseptember.RNGL;
+
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
+import com.facebook.react.bridge.ReactMethod;
+import com.facebook.react.bridge.ReadableMap;
+
+public class RNGLContext extends ReactContextBaseJavaModule {
+
+ public RNGLContext (ReactApplicationContext reactContext) {
+ super(reactContext);
+ }
+
+ @Override
+ public String getName() {
+ return "RNGLContext";
+ }
+
+ @ReactMethod
+ public void addShader (Integer id, ReadableMap config) {
+ String frag = config.getString("frag");
+ String name = config.getString("name");
+ System.out.println("TODO... addShader: "+id+" "+name);
+ }
+}
diff --git a/android/src/main/java/com/projectseptember/RNGL/GLCanvas.java b/android/src/main/java/com/projectseptember/RNGL/RNGLPackage.java
similarity index 56%
rename from android/src/main/java/com/projectseptember/RNGL/GLCanvas.java
rename to android/src/main/java/com/projectseptember/RNGL/RNGLPackage.java
index 50d55deca9e4538190864f9fc3fa8029fa4f17ee..96784e34af14ad11cbdc733c58aed10055939625 100644
--- a/android/src/main/java/com/projectseptember/RNGL/GLCanvas.java
+++ b/android/src/main/java/com/projectseptember/RNGL/RNGLPackage.java
@@ -11,9 +11,21 @@ import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import com.facebook.react.bridge.JavaScriptModule;
-public class GLCanvas implements ReactPackage {
+public class RNGLPackage implements ReactPackage {
@Override
+ public List createNativeModules(ReactApplicationContext reactApplicationContext) {
+ List modules = new ArrayList<>();
+ modules.add(new RNGLContext(reactApplicationContext));
+ return modules;
+ }
+
+ @Override
+ public List> createJSModules() {
+ return Collections.emptyList();
+ }
+
+ @Override
public List createViewManagers(ReactApplicationContext reactContext) {
return Arrays.asList(
new GLCanvasManager()
diff --git a/index.android.js b/index.android.js
index c8fb9c15058a45be80a0ff2fe463e95a65e2f27d..101d3174fe2b6fcd98645a4548c6305e6318634a 100644
--- a/index.android.js
+++ b/index.android.js
@@ -1,2 +1,13 @@
+const Shaders = require("./src/Shaders");
+const View = require("./src/View");
+const Uniform = require("./src/Uniform");
+const Component = require("./src/ComponentDeprecated");
+const createComponent = require("./src/createComponent");
-throw new Error("Android version is not yet implemented");
+module.exports = {
+ Shaders,
+ View,
+ Uniform,
+ Component,
+ createComponent
+};