You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-11 13:10:58 +00:00
testing patch for aligned reads by webp in javascript
This commit is contained in:
@@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
#include "./bit_reader_inl.h"
|
#include "./bit_reader_inl.h"
|
||||||
|
|
||||||
|
#define JAVASCRIPT_ENABLED // testing
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// VP8BitReader
|
// VP8BitReader
|
||||||
|
|
||||||
@@ -40,7 +42,13 @@ void VP8InitBitReader(VP8BitReader* const br,
|
|||||||
br->bits_ = -8; // to load the very first 8bits
|
br->bits_ = -8; // to load the very first 8bits
|
||||||
br->eof_ = 0;
|
br->eof_ = 0;
|
||||||
VP8BitReaderSetBuffer(br, start, size);
|
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);
|
VP8LoadNewBytes(br);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset) {
|
void VP8RemapBitReader(VP8BitReader* const br, ptrdiff_t offset) {
|
||||||
|
|||||||
@@ -37,6 +37,12 @@ extern "C" {
|
|||||||
// BITS can be any multiple of 8 from 8 to 56 (inclusive).
|
// BITS can be any multiple of 8 from 8 to 56 (inclusive).
|
||||||
// Pick values that fit natural register size.
|
// Pick values that fit natural register size.
|
||||||
|
|
||||||
|
#ifdef JAVASCRIPT_ENABLED
|
||||||
|
|
||||||
|
#define BITS 16
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
#if defined(__i386__) || defined(_M_IX86) // x86 32bit
|
#if defined(__i386__) || defined(_M_IX86) // x86 32bit
|
||||||
#define BITS 24
|
#define BITS 24
|
||||||
#elif defined(__x86_64__) || defined(_M_X64) // x86 64bit
|
#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.
|
#define BITS 24 // TODO(skal): test aarch64 and find the proper BITS value.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Derived types and constants:
|
// Derived types and constants:
|
||||||
// bit_t = natural register type for storing 'value_' (which is BITS+8 bits)
|
// bit_t = natural register type for storing 'value_' (which is BITS+8 bits)
|
||||||
|
|||||||
@@ -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_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_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_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_line"),&VisualServer::canvas_item_add_line, DEFVAL(1.0));
|
||||||
ObjectTypeDB::bind_method(_MD("canvas_item_add_rect"),&VisualServer::canvas_item_add_rect);
|
ObjectTypeDB::bind_method(_MD("canvas_item_add_rect"),&VisualServer::canvas_item_add_rect);
|
||||||
|
|||||||
Reference in New Issue
Block a user