Updating README
This commit is contained in:
21
README.md
21
README.md
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user