From 61362f27e0cb06cfc19d97804769c5b7319c821f Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 23 Jun 2021 11:35:10 -0500 Subject: [PATCH] added members to enum type info --- bin/onyx | Bin 409120 -> 409120 bytes modules/json/encoder.onyx | 2 +- modules/ui/components/slider.onyx | 9 ++++++--- src/onyxwasm_type_table.c | 30 ++++++++++++++++++++++++++---- 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/bin/onyx b/bin/onyx index b0b63777c1a4d183aa47f60091fbaddb147b0c1c..c55c29c4ae9604960fcb50c789c9836d98c56294 100755 GIT binary patch delta 8566 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 auEVG}D6~%tc|Arf#QyryL4!iChx{9Jz4@;I delta 8055 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 diff --git a/modules/json/encoder.onyx b/modules/json/encoder.onyx index 99ce21e5..286a8d5b 100644 --- a/modules/json/encoder.onyx +++ b/modules/json/encoder.onyx @@ -134,4 +134,4 @@ encode :: #match { // #precedence 1000 (w: ^io.Writer, v: $T) -> Encoding_Error { // return .Unsupported_Type; // } -} \ No newline at end of file +} diff --git a/modules/ui/components/slider.onyx b/modules/ui/components/slider.onyx index 4c1251a1..6fbfe9a4 100644 --- a/modules/ui/components/slider.onyx +++ b/modules/ui/components/slider.onyx @@ -10,8 +10,9 @@ Slider_Theme :: struct { box_border_color := gfx.Color4.{ 0.2, 0.2, 0.2 }; box_border_width := 4.0f; @InPixels - bar_color := gfx.Color4.{ 0.4, 0.4, 0.4 }; - bar_hover_color := gfx.Color4.{ 1, 0, 0 }; + bar_color := gfx.Color4.{ 0.4, 0.4, 0.4 }; + bar_hover_color := gfx.Color4.{ 0, 0, 1 }; + bar_hover_negative_color := gfx.Color4.{ 1, 0, 0 }; // The color when value is less than 0 } default_slider_theme := Slider_Theme.{}; @@ -62,7 +63,9 @@ slider :: (use r: Rectangle, value: ^$T, min_value: T, max_value: T, text: str, box_border_width := theme.box_border_width; - bar_color := color_lerp(animation_state.hover_time, theme.bar_color, theme.bar_hover_color); + bar_color := theme.bar_color; + if *value < 0 do bar_color = color_lerp(animation_state.hover_time, bar_color, theme.bar_hover_negative_color); + else do bar_color = color_lerp(animation_state.hover_time, bar_color, theme.bar_hover_color); gfx.set_texture(); gfx.rect(.{ x0, y0 }, .{ width, height }, theme.box_border_color); diff --git a/src/onyxwasm_type_table.c b/src/onyxwasm_type_table.c index e14f9906..936dbb4f 100644 --- a/src/onyxwasm_type_table.c +++ b/src/onyxwasm_type_table.c @@ -121,14 +121,35 @@ u64 build_type_table(OnyxWasmModule* module) { } case Type_Kind_Enum: { + AstEnumType* ast_enum = (AstEnumType *) type->ast_type; + u32 member_count = bh_arr_length(ast_enum->values); + u32* name_locations = bh_alloc_array(global_scratch_allocator, u32, member_count); + + u32 i = 0; + bh_arr_each(AstEnumValue *, value, ast_enum->values) { + name_locations[i++] = table_buffer.length; + + bh_buffer_append(&table_buffer, (*value)->token->text, (*value)->token->length); + } + bh_buffer_align(&table_buffer, 8); + + u32 member_base = table_buffer.length; + i = 0; + bh_arr_each(AstEnumValue *, value, ast_enum->values) { + u32 name_loc = name_locations[i++]; + + bh_buffer_align(&table_buffer, 8); + PATCH; + bh_buffer_write_u64(&table_buffer, name_loc); + bh_buffer_write_u64(&table_buffer, (*value)->token->length); + bh_buffer_write_u64(&table_buffer, (*value)->value->value.l); + } u32 name_base = table_buffer.length; u32 name_length = strlen(type->Enum.name); bh_buffer_append(&table_buffer, type->Enum.name, name_length); bh_buffer_align(&table_buffer, 8); - // u32 member_base = table_buffer.length; - table_info[type_idx] = table_buffer.length; bh_buffer_write_u32(&table_buffer, type->kind); bh_buffer_write_u32(&table_buffer, type_size_of(type)); @@ -137,8 +158,9 @@ u64 build_type_table(OnyxWasmModule* module) { PATCH; bh_buffer_write_u64(&table_buffer, name_base); bh_buffer_write_u64(&table_buffer, name_length); - bh_buffer_write_u64(&table_buffer, 0); // TODO: Add member info here. Also, Patching - bh_buffer_write_u64(&table_buffer, 0); + PATCH; + bh_buffer_write_u64(&table_buffer, member_base); + bh_buffer_write_u64(&table_buffer, member_count); bh_buffer_write_u32(&table_buffer, type->Enum.is_flags ? 1 : 0); break; } -- 2.25.1