Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
gl-react-native-v2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Jira
Jira
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
ym
gl-react-native-v2
Commits
8c3dde97
Commit
8c3dde97
authored
Dec 28, 2015
by
Gaëtan Renaudeau
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugfix iOS version
parent
bd14d3bf
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
33 deletions
+37
-33
Examples/Simple/package.json
Examples/Simple/package.json
+2
-2
ios/GLCanvas.m
ios/GLCanvas.m
+31
-29
ios/GLImage.m
ios/GLImage.m
+3
-1
ios/RNGL.xcodeproj/project.pbxproj
ios/RNGL.xcodeproj/project.pbxproj
+1
-1
No files found.
Examples/Simple/package.json
View file @
8c3dde97
...
@@ -7,8 +7,8 @@
...
@@ -7,8 +7,8 @@
},
},
"dependencies"
:
{
"dependencies"
:
{
"gl-react-native"
:
"file:../.."
,
"gl-react-native"
:
"file:../.."
,
"gl-react"
:
"^2.0.
2
"
,
"gl-react"
:
"^2.0.
8
"
,
"react-native"
:
"^0.17.0"
,
"react-native"
:
"^0.17.0"
,
"react-native-material-kit"
:
"^0.2.
2
"
"react-native-material-kit"
:
"^0.2.
4
"
}
}
}
}
ios/GLCanvas.m
View file @
8c3dde97
...
@@ -104,7 +104,7 @@ RCT_NOT_IMPLEMENTED(-init)
...
@@ -104,7 +104,7 @@ RCT_NOT_IMPLEMENTED(-init)
-
(
void
)
setRenderId
:(
NSNumber
*
)
renderId
-
(
void
)
setRenderId
:(
NSNumber
*
)
renderId
{
{
if
(
_nbContentTextures
>
0
)
{
if
(
[
_nbContentTextures
intValue
]
>
0
)
{
[
self
setNeedsDisplay
];
[
self
setNeedsDisplay
];
}
}
}
}
...
@@ -273,12 +273,17 @@ RCT_NOT_IMPLEMENTED(-init)
...
@@ -273,12 +273,17 @@ RCT_NOT_IMPLEMENTED(-init)
GLRenderData
*
res
=
traverseTree
(
_data
);
GLRenderData
*
res
=
traverseTree
(
_data
);
if
(
res
!=
nil
)
{
if
(
res
!=
nil
)
{
_needSync
=
false
;
_renderData
=
traverseTree
(
_data
);
_renderData
=
traverseTree
(
_data
);
_images
=
images
;
_images
=
images
;
for
(
NSString
*
src
in
diff
([
prevImages
allKeys
],
[
images
allKeys
]))
{
for
(
NSString
*
src
in
diff
([
prevImages
allKeys
],
[
images
allKeys
]))
{
[
_preloaded
removeObject
:
src
];
[
_preloaded
removeObject
:
src
];
}
}
}
}
else
{
// the data is not ready, retry in one tick
[
self
setNeedsDisplay
];
}
}
}
}
}
...
@@ -329,25 +334,23 @@ RCT_NOT_IMPLEMENTED(-init)
...
@@ -329,25 +334,23 @@ RCT_NOT_IMPLEMENTED(-init)
-
(
void
)
drawRect
:(
CGRect
)
rect
-
(
void
)
drawRect
:(
CGRect
)
rect
{
{
__weak
GLCanvas
*
weakSelf
=
self
;
self
.
layer
.
opaque
=
_opaque
;
if
(
_neverRendered
)
{
_neverRendered
=
false
;
glClearColor
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
glClear
(
GL_COLOR_BUFFER_BIT
);
}
if
(
_needSync
)
{
if
(
_needSync
)
{
_needSync
=
false
;
[
self
syncData
];
[
self
syncData
];
}
}
self
.
layer
.
opaque
=
_opaque
;
if
([
self
haveRemainingToPreload
])
{
if
([
self
haveRemainingToPreload
])
{
if
(
_neverRendered
)
{
_neverRendered
=
false
;
glClearColor
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
glClear
(
GL_COLOR_BUFFER_BIT
);
}
return
;
return
;
}
}
_neverRendered
=
false
;
BOOL
needsDeferredRendering
=
_nbContentTextures
>
0
&&
!
_autoRedraw
;
BOOL
needsDeferredRendering
=
[
_nbContentTextures
intValue
]
>
0
&&
!
_autoRedraw
;
if
(
needsDeferredRendering
&&
!
_deferredRendering
)
{
if
(
needsDeferredRendering
&&
!
_deferredRendering
)
{
_deferredRendering
=
true
;
_deferredRendering
=
true
;
[
self
performSelectorOnMainThread
:
@selector
(
syncContentData
)
withObject
:
nil
waitUntilDone
:
NO
];
[
self
performSelectorOnMainThread
:
@selector
(
syncContentData
)
withObject
:
nil
waitUntilDone
:
NO
];
...
@@ -355,24 +358,23 @@ RCT_NOT_IMPLEMENTED(-init)
...
@@ -355,24 +358,23 @@ RCT_NOT_IMPLEMENTED(-init)
else
{
else
{
[
self
render
];
[
self
render
];
_deferredRendering
=
false
;
_deferredRendering
=
false
;
if
(
_captureFrameRequested
)
{
if
(
_captureFrameRequested
)
{
_captureFrameRequested
=
false
;
_captureFrameRequested
=
false
;
[
self
performSelectorOnMainThread
:
@selector
(
capture
)
withObject
:
nil
waitUntilDone
:
NO
];
// FIXME: might use performSelectorOnMainThread as well
dispatch_async
(
dispatch_get_main_queue
(),
^
{
// snapshot not allowed in render tick. defer it.
if
(
!
weakSelf
)
return
;
UIImage
*
frameImage
=
[
weakSelf
snapshot
];
NSData
*
frameData
=
UIImagePNGRepresentation
(
frameImage
);
NSString
*
frame
=
[
NSString
stringWithFormat
:
@"data:image/png;base64,%@"
,
[
frameData
base64EncodedStringWithOptions
:
NSDataBase64Encoding64CharacterLineLength
]];
if
(
weakSelf
.
onGLCaptureFrame
)
weakSelf
.
onGLCaptureFrame
(@{
@"frame"
:
frame
});
});
}
}
}
}
}
}
-
(
void
)
capture
{
UIImage
*
frameImage
=
[
self
snapshot
];
NSData
*
frameData
=
UIImagePNGRepresentation
(
frameImage
);
NSString
*
frame
=
[
NSString
stringWithFormat
:
@"data:image/png;base64,%@"
,
[
frameData
base64EncodedStringWithOptions
:
NSDataBase64Encoding64CharacterLineLength
]];
if
(
self
.
onGLCaptureFrame
)
self
.
onGLCaptureFrame
(@{
@"frame"
:
frame
});
}
-
(
void
)
render
-
(
void
)
render
{
{
GLRenderData
*
rd
=
_renderData
;
GLRenderData
*
rd
=
_renderData
;
...
@@ -489,11 +491,11 @@ RCT_NOT_IMPLEMENTED(-init)
...
@@ -489,11 +491,11 @@ RCT_NOT_IMPLEMENTED(-init)
-
(
void
)
dispatchOnProgress
:
(
double
)
progress
withLoaded
:(
int
)
loaded
withTotal
:(
int
)
total
-
(
void
)
dispatchOnProgress
:
(
double
)
progress
withLoaded
:(
int
)
loaded
withTotal
:(
int
)
total
{
{
if
(
self
.
onGLProgress
)
self
.
onGLProgress
(
if
(
self
.
onGLProgress
)
self
.
onGLProgress
(
@{
@{
@"progress"
:
@
(
RCTZeroIfNaN
(
progress
)),
@"progress"
:
@
(
RCTZeroIfNaN
(
progress
)),
@"loaded"
:
@
(
RCTZeroIfNaN
(
loaded
)),
@"loaded"
:
@
(
RCTZeroIfNaN
(
loaded
)),
@"total"
:
@
(
RCTZeroIfNaN
(
total
))
@"total"
:
@
(
RCTZeroIfNaN
(
total
))
});
});
}
}
@end
@end
ios/GLImage.m
View file @
8c3dde97
...
@@ -97,7 +97,9 @@ RCT_NOT_IMPLEMENTED(-init)
...
@@ -97,7 +97,9 @@ RCT_NOT_IMPLEMENTED(-init)
}
else
{
}
else
{
// we need to copy the image because it seems the image will be altered.
// we need to copy the image because it seems the image will be altered.
self
.
image
=
[
UIImage
imageWithCGImage
:
image
.
CGImage
];
self
.
image
=
[
UIImage
imageWithCGImage
:
image
.
CGImage
];
if
(
_onload
)
_onload
();
dispatch_async
(
dispatch_get_main_queue
(),
^
{
if
(
_onload
)
_onload
();
});
}
}
}];
}];
}
}
...
...
ios/RNGL.xcodeproj/project.pbxproj
View file @
8c3dde97
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
346089C01BEFD0A500C90DB5
/* GLFBO.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
GLFBO.h
;
sourceTree
=
"<group>"
;
};
346089C01BEFD0A500C90DB5
/* GLFBO.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
GLFBO.h
;
sourceTree
=
"<group>"
;
};
346089C11BEFD0A500C90DB5
/* GLFBO.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
GLFBO.m
;
sourceTree
=
"<group>"
;
};
346089C11BEFD0A500C90DB5
/* GLFBO.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
GLFBO.m
;
sourceTree
=
"<group>"
;
};
346089C21BEFD0A500C90DB5
/* GLImage.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
GLImage.h
;
sourceTree
=
"<group>"
;
};
346089C21BEFD0A500C90DB5
/* GLImage.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
GLImage.h
;
sourceTree
=
"<group>"
;
};
346089C31BEFD0A500C90DB5
/* GLImage.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
GLImage.m
;
sourceTree
=
"<group>"
;
};
346089C31BEFD0A500C90DB5
/* GLImage.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
indentWidth
=
2
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
GLImage.m
;
sourceTree
=
"<group>"
;
tabWidth
=
2
;
};
346089C41BEFD0A500C90DB5
/* GLImageData.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
GLImageData.h
;
sourceTree
=
"<group>"
;
};
346089C41BEFD0A500C90DB5
/* GLImageData.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
GLImageData.h
;
sourceTree
=
"<group>"
;
};
346089C51BEFD0A500C90DB5
/* GLImageData.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
indentWidth
=
2
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
GLImageData.m
;
sourceTree
=
"<group>"
;
tabWidth
=
2
;
};
346089C51BEFD0A500C90DB5
/* GLImageData.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
indentWidth
=
2
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
GLImageData.m
;
sourceTree
=
"<group>"
;
tabWidth
=
2
;
};
346089C61BEFD0A500C90DB5
/* GLRenderData.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
GLRenderData.h
;
sourceTree
=
"<group>"
;
};
346089C61BEFD0A500C90DB5
/* GLRenderData.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
GLRenderData.h
;
sourceTree
=
"<group>"
;
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment