summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/webp/utils/bit_reader.c8
-rw-r--r--drivers/webp/utils/bit_reader.h8
-rw-r--r--platform/javascript/detect.py7
-rw-r--r--servers/visual_server.cpp1
4 files changed, 24 insertions, 0 deletions
diff --git a/drivers/webp/utils/bit_reader.c b/drivers/webp/utils/bit_reader.c
index 5081d5cd4d..4d6b4f0164 100644
--- a/drivers/webp/utils/bit_reader.c
+++ b/drivers/webp/utils/bit_reader.c
@@ -17,6 +17,8 @@
#include "./bit_reader_inl.h"
+#define JAVASCRIPT_ENABLED // testing
+
//------------------------------------------------------------------------------
// VP8BitReader
@@ -40,7 +42,13 @@ void VP8InitBitReader(VP8BitReader* const br,
br->bits_ = -8; // to load the very first 8bits
br->eof_ = 0;
VP8BitReaderSetBuffer(br, start, size);
+
+#ifdef JAVASCRIPT_ENABLED // html5 required aligned reads
+ while(((uintptr_t)br->buf_ & 1) != 0 && !br->eof_)
+ VP8LoadFinalBytes(br);
+#else
VP8LoadNewBytes(br);
+#endif
}
void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset) {
diff --git a/drivers/webp/utils/bit_reader.h b/drivers/webp/utils/bit_reader.h
index 7e09653ebc..f0f450231d 100644
--- a/drivers/webp/utils/bit_reader.h
+++ b/drivers/webp/utils/bit_reader.h
@@ -37,6 +37,12 @@ extern "C" {
// BITS can be any multiple of 8 from 8 to 56 (inclusive).
// Pick values that fit natural register size.
+#ifdef JAVASCRIPT_ENABLED
+
+#define BITS 16
+
+#else
+
#if defined(__i386__) || defined(_M_IX86) // x86 32bit
#define BITS 24
#elif defined(__x86_64__) || defined(_M_X64) // x86 64bit
@@ -49,6 +55,8 @@ extern "C" {
#define BITS 24 // TODO(skal): test aarch64 and find the proper BITS value.
#endif
+#endif
+
//------------------------------------------------------------------------------
// Derived types and constants:
// bit_t = natural register type for storing 'value_' (which is BITS+8 bits)
diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py
index ec21bf6ee4..9cc1ffc2e2 100644
--- a/platform/javascript/detect.py
+++ b/platform/javascript/detect.py
@@ -98,3 +98,10 @@ def configure(env):
#print "CCCOM is:", env.subst('$CCCOM')
#print "P: ", env['p'], " Platofrm: ", env['platform']
+
+ import methods
+
+ env.Append( BUILDERS = { 'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
+ env.Append( BUILDERS = { 'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
+ env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } )
+ #env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } )
diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp
index 25e6a68469..52381cf096 100644
--- a/servers/visual_server.cpp
+++ b/servers/visual_server.cpp
@@ -526,6 +526,7 @@ void VisualServer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("canvas_item_get_opacity"),&VisualServer::canvas_item_get_opacity);
ObjectTypeDB::bind_method(_MD("canvas_item_set_self_opacity"),&VisualServer::canvas_item_set_self_opacity);
ObjectTypeDB::bind_method(_MD("canvas_item_get_self_opacity"),&VisualServer::canvas_item_get_self_opacity);
+ ObjectTypeDB::bind_method(_MD("canvas_item_set_z"),&VisualServer::canvas_item_set_z);
ObjectTypeDB::bind_method(_MD("canvas_item_add_line"),&VisualServer::canvas_item_add_line, DEFVAL(1.0));
ObjectTypeDB::bind_method(_MD("canvas_item_add_rect"),&VisualServer::canvas_item_add_rect);