| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- package karl2d_palette
- import k2 "../.."
- import "core:log"
- import "core:fmt"
- import "core:reflect"
- _ :: fmt
- tex: k2.Texture
- PAD :: 20
- SW :: 50
- SH :: 50
- MID_WIDTH :: (len(COLOR_BY_NAME) - 1) * SW + PAD*2
- init :: proc() {
- k2.init(290*2 + MID_WIDTH, (len(COLOR_BY_NAME) - 1)*(SH + PAD*2), "Karl2D Palette Demo")
- }
- step :: proc() -> bool {
- k2.new_frame()
- k2.process_events()
- k2.clear(k2.WHITE)
- k2.draw_rect({0, 0, f32(k2.get_screen_width() / 2), f32(k2.get_screen_height())}, k2.BLACK)
- x := f32(290)
- y := f32(0)
- for c, name in COLOR_BY_NAME {
- if name == .BLANK {
- continue
- }
- k2.draw_rect({x, y, MID_WIDTH, SH+PAD*2}, c)
- k2.draw_text(reflect.enum_string(name), {x + MID_WIDTH+PAD, y+25}, 40, c)
- color_name_width := k2.measure_text(reflect.enum_string(name), 40)
- k2.draw_text(reflect.enum_string(name), {290-color_name_width.x-PAD, y+25}, 40, c)
- for c2, c2_name in COLOR_BY_NAME {
- if c2_name == .BLANK {
- continue
- }
- k2.draw_rect({x + PAD, y + PAD, SW, SH}, c2)
- x += SW
- }
- x = 290
- y += SH + PAD*2
- }
- k2.present()
- free_all(context.temp_allocator)
- return !k2.shutdown_wanted()
- }
- shutdown :: proc() {
- k2.destroy_texture(tex)
- k2.shutdown()
- }
- main :: proc() {
- context.logger = log.create_console_logger()
- init()
- run := true
- for run {
- run = step()
- }
- shutdown()
- }
- Color_Name :: enum {
- BLACK,
- WHITE,
- BLANK,
- GRAY,
- DARK_GRAY,
- BLUE,
- DARK_BLUE,
- LIGHT_BLUE,
- GREEN,
- DARK_GREEN,
- LIGHT_GREEN,
- ORANGE,
- RED,
- DARK_RED,
- LIGHT_RED,
- BROWN,
- DARK_BROWN,
- LIGHT_BROWN,
- PURPLE,
- LIGHT_PURPLE,
- MAGENTA,
- YELLOW,
- LIGHT_YELLOW,
- }
- COLOR_BY_NAME :: [Color_Name]k2.Color {
- .BLACK = k2.BLACK,
- .WHITE = k2.WHITE,
- .BLANK = k2.BLANK,
- .GRAY = k2.GRAY,
- .DARK_GRAY = k2.DARK_GRAY,
- .BLUE = k2.BLUE,
- .DARK_BLUE = k2.DARK_BLUE,
- .LIGHT_BLUE = k2.LIGHT_BLUE,
- .GREEN = k2.GREEN,
- .DARK_GREEN = k2.DARK_GREEN,
- .LIGHT_GREEN = k2.LIGHT_GREEN,
- .ORANGE = k2.ORANGE,
- .RED = k2.RED,
- .DARK_RED = k2.DARK_RED,
- .LIGHT_RED = k2.LIGHT_RED,
- .BROWN = k2.BROWN,
- .DARK_BROWN = k2.DARK_BROWN,
- .LIGHT_BROWN = k2.LIGHT_BROWN,
- .PURPLE = k2.PURPLE,
- .LIGHT_PURPLE = k2.LIGHT_PURPLE,
- .MAGENTA = k2.MAGENTA,
- .YELLOW = k2.YELLOW,
- .LIGHT_YELLOW = k2.LIGHT_YELLOW,
- }
|