Updating README

This commit is contained in:
Krzosa Karol
2022-09-30 16:58:20 +02:00
parent ecf4ee8d8a
commit 32fbacff6d
3 changed files with 25 additions and 23 deletions

View File

@@ -6,7 +6,9 @@ The language is currently **very debuggable**. It can produce readable C code wi
## Using Windows API example ## Using Windows API example
* More examples can be found in /examples and /modules * More examples can be found in /examples and /modules, especially checkout:
* examples/raymarcher.core
* examples/drawing_to_screen_using_windows_api.core
``` odin ``` odin
#import "KERNEL32.core" #import "KERNEL32.core"
@@ -56,12 +58,19 @@ Release :: (m: *Memory)
``` ```
## Operator overload example ## Simple math library example (operator overloading!)
``` odin ``` odin
Vec3 :: struct ;; x: F32; y: F32; z: F32 Vec3 :: struct ;; x: F32; y: F32; z: F32
Length :: (a: Vec3): F32 ;; return sqrtf(a.x*a.x + a.y*a.y + a.z*a.z)
Negate :: (a: Vec3): Vec3 ;; return {-a.x, -a.y, -a.z}
Dot :: (a: Vec3, b: Vec3): F32 ;; return a.x*b.x + a.y*b.y + a.z*b.z
"*" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x*b.x, a.y*b.y, a.z*b.z}
"*" :: (a: Vec3, b: F32) : Vec3 ;; return {a.x*b, a.y*b, a.z*b}
"+" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x+b.x, a.y+b.y, a.z+b.z}
"/" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x/b.x, a.y/b.y, a.z/b.z}
"/" :: (a: Vec3, b: F32) : Vec3 ;; return {a.x/b, a.y/b, a.z/b}
"-" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x-b.x, a.y-b.y, a.z-b.z} "-" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x-b.x, a.y-b.y, a.z-b.z}
"-" :: (a: Vec3): Vec3 ;; return {-a.x, -a.y, -a.z }
``` ```
## Unicode conversion example ## Unicode conversion example
@@ -156,11 +165,7 @@ Utf8ToUtf32 :: (c: *U8, max_advance: S64): U32, S64
- [ ] Unix based - [ ] Unix based
- [ ] Language constructs - [ ] Language constructs
- [x] If - [x] Standard constructs like if, for loop etc.
- [x] For loops
- [x] Functions
- [x] Structures
- [x] Switch (but maybe needs redesign?)
- [ ] Jai like using statement - [ ] Jai like using statement
- [ ] Defer statement - [ ] Defer statement
- [ ] Unions (or something like unions) - [ ] Unions (or something like unions)

View File

@@ -7,10 +7,8 @@
#import "WINMM.core" #import "WINMM.core"
Vec2I :: struct;; x: S64; y: S64 Vec2I :: struct;; x: S64; y: S64
Vec2 :: struct;; x: F32; y: F32
AppIsRunning := true AppIsRunning := true
Windows_Bitmap :: struct Windows_Bitmap :: struct
size: Vec2I size: Vec2I
data: *U32 data: *U32

View File

@@ -1,6 +1,15 @@
#import "Math.core" #import "Math.core"
Vec3 :: struct;; x: F32; y: F32; z: F32 Vec3 :: struct ;; x: F32; y: F32; z: F32
Length :: (a: Vec3): F32 ;; return sqrtf(a.x*a.x + a.y*a.y + a.z*a.z)
Negate :: (a: Vec3): Vec3 ;; return {-a.x, -a.y, -a.z}
Dot :: (a: Vec3, b: Vec3): F32 ;; return a.x*b.x + a.y*b.y + a.z*b.z
"*" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x*b.x, a.y*b.y, a.z*b.z}
"*" :: (a: Vec3, b: F32) : Vec3 ;; return {a.x*b, a.y*b, a.z*b}
"+" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x+b.x, a.y+b.y, a.z+b.z}
"/" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x/b.x, a.y/b.y, a.z/b.z}
"/" :: (a: Vec3, b: F32) : Vec3 ;; return {a.x/b, a.y/b, a.z/b}
"-" :: (a: Vec3, b: Vec3): Vec3 ;; return {a.x-b.x, a.y-b.y, a.z-b.z}
Cross :: (a: Vec3, b: Vec3): Vec3 Cross :: (a: Vec3, b: Vec3): Vec3
result := Vec3{ result := Vec3{
@@ -29,13 +38,3 @@ ConvertToARGB :: (a: Vec3): U32
b := (a.z * 255)->U32 << 0 b := (a.z * 255)->U32 << 0
result := r | g | b result := r | g | b
return result return result
Length :: (a: Vec3): F32 ;; return sqrtf(a.x*a.x + a.y*a.y + a.z*a.z)
Negate :: (a: Vec3): Vec3 ;; return Vec3{-a.x, -a.y, -a.z}
Dot :: (a: Vec3, b: Vec3): F32 ;; return a.x*b.x + a.y*b.y + a.z*b.z
"*" :: (a: Vec3, b: Vec3): Vec3 ;; return Vec3{a.x*b.x, a.y*b.y, a.z*b.z}
"*" :: (a: Vec3, b: F32) : Vec3 ;; return Vec3{a.x*b, a.y*b, a.z*b}
"+" :: (a: Vec3, b: Vec3): Vec3 ;; return Vec3{a.x+b.x, a.y+b.y, a.z+b.z}
"/" :: (a: Vec3, b: Vec3): Vec3 ;; return Vec3{a.x/b.x, a.y/b.y, a.z/b.z}
"/" :: (a: Vec3, b: F32): Vec3 ;; return Vec3{a.x/b, a.y/b, a.z/b}
"-" :: (a: Vec3, b: Vec3): Vec3 ;; return Vec3{a.x-b.x, a.y-b.y, a.z-b.z}