Jeroen van Rijn and GitHub
481fc8a5b6
Merge pull request #1060 from Kelimion/win_sys
...
Allow `core:sys/windows` to build on Windows only
2021-07-15 12:15:10 +02:00
Jeroen van Rijn
5dfff51a40
Allow core:sys/windows to build on Windows only
2021-07-15 12:13:57 +02:00
Jeroen van Rijn and GitHub
8e5c3141f6
Merge pull request #1047 from Kelimion/zlib_optimize
...
ZLIB: Fix edge case where initial buffer < 258 bytes.
2021-06-27 18:49:09 +02:00
Jeroen van Rijn
87aaa9c3f0
ZLIB: Fix edge case where initial buffer < 258 bytes.
2021-06-27 18:44:36 +02:00
Jeroen van Rijn and GitHub
095605b7db
Merge pull request #1046 from Kelimion/zlib_optimize
...
ZLIB: Optimize
2021-06-27 16:54:15 +02:00
Jeroen van Rijn
6836b501af
Merge branch 'master' into zlib_optimize
2021-06-27 16:50:27 +02:00
Jeroen van Rijn
d949d5a046
ZLIB: cleanup.
2021-06-27 16:48:12 +02:00
Jeroen van Rijn
064516bf0b
PNG: Inform inflate about expected output size for extra speed.
2021-06-27 13:57:12 +02:00
Jeroen van Rijn
eaf88bcc4d
PNG: Let PNG use the new compress I/O routines.
2021-06-27 13:51:52 +02:00
Jeroen van Rijn
02f9668185
ZLIB: Split up input from stream and memory into own code paths.
2021-06-27 13:19:24 +02:00
Jeroen van Rijn
4689a6b341
Refactor compress.Context struct.
2021-06-26 22:25:55 +02:00
Jeroen van Rijn
30a5808460
ZLIB: Moar faster.
2021-06-26 20:40:39 +02:00
Jeroen van Rijn
8ba1c9a6cd
ZLIB: Remove superfluous code.
2021-06-26 17:44:12 +02:00
Jeroen van Rijn
65b78b1aa9
So far, so good.
2021-06-26 15:11:15 +02:00
Jeroen van Rijn
c369719362
Merge branch 'master' into zlib_optimize
2021-06-26 13:40:22 +02:00
Jeroen van Rijn
40a12cca53
ZLIB: If output size is known, reserve that much.
2021-06-26 13:17:14 +02:00
Jeroen van Rijn and GitHub
ab12ca69af
Merge pull request #1040 from Kelimion/zlib_optimize
...
Adler32 speedup.
2021-06-24 19:15:22 +02:00
Jeroen van Rijn
17748f18b9
Adler32 speedup.
2021-06-24 19:06:39 +02:00
Jeroen van Rijn and GitHub
f62f40e508
Merge pull request #1039 from Kelimion/zlib_optimize
...
ZLIB: Another 10%+ faster.
2021-06-24 15:02:02 +02:00
Jeroen van Rijn
980aa37bee
ZLIB: Another 10%+ faster.
2021-06-24 14:56:28 +02:00
Jeroen van Rijn and GitHub
824efc82b9
Merge pull request #1036 from Kelimion/zlib_optimize
...
ZLIB: More faster.
2021-06-23 22:25:02 +02:00
Jeroen van Rijn
1cfe226686
ZLIB: More faster.
2021-06-23 22:18:17 +02:00
Jeroen van Rijn and GitHub
ea0ce7bd2c
Merge pull request #1035 from Kelimion/zlib_optimize
...
Zlib optimize
2021-06-23 20:15:32 +02:00
Jeroen van Rijn
342adb627d
All reads now skip stream if in memory.
2021-06-23 16:32:48 +02:00
Jeroen van Rijn
a70635d2f6
Most reads now go through buffer for zlib.
2021-06-23 16:32:48 +02:00
Jeroen van Rijn
5cb16c4cd1
All reads now go through read_slice.
2021-06-23 16:32:48 +02:00
Jeroen van Rijn
538004ba5f
Introduce read_slice, make read_u8 use it.
2021-06-23 16:32:48 +02:00
Jeroen van Rijn
8663c64e47
Refactor ZLIB structs.
2021-06-23 16:32:47 +02:00
Jeroen van Rijn and GitHub
fb2e1c32bd
Merge pull request #1034 from Kelimion/bytes_util
...
Move `bytes` utils back to EXR code for the time being.
2021-06-22 16:48:07 +02:00
Jeroen van Rijn
ae0b8fce44
Move bytes utils back to EXR code for the time being.
...
Also, allow PNG example to be run directly from `core:image/png` directory.
2021-06-22 16:39:00 +02:00
Jeroen van Rijn and GitHub
d2e55f9ffa
Merge pull request #1032 from Kelimion/png_fix
...
PNG: Fix leak if you don't ask for metadata.
2021-06-21 22:56:39 +02:00
Jeroen van Rijn
d5e2b387fa
PNG: Fix leak if you don't ask for metadata.
2021-06-21 22:47:54 +02:00
Jeroen van Rijn and GitHub
922b511a24
Merge pull request #1031 from Kelimion/zlib_fix
...
ZLIB: fix.
2021-06-21 22:16:56 +02:00
Jeroen van Rijn
9de9111082
ZLIB: fix.
2021-06-21 22:15:04 +02:00
Jeroen van Rijn and GitHub
5a7fe2e3d9
Merge pull request #1030 from Kelimion/zlib_optimize
...
Comment out tracy imports.
2021-06-21 21:43:57 +02:00
Jeroen van Rijn
1e8c12c2a3
Comment out tracy imports.
2021-06-21 21:41:56 +02:00
Jeroen van Rijn and GitHub
b92c70e55c
Merge pull request #1029 from Kelimion/zlib_optimize
...
ZLIB: Start optimization.
2021-06-21 21:26:52 +02:00
Jeroen van Rijn
352494cbb4
ZLIB: Start optimization.
2021-06-21 21:05:52 +02:00
Jeroen van Rijn and GitHub
797c41950a
Merge pull request #1027 from Kelimion/png
...
Replace `core:image`'s `sidecar` with explicit pointer and type
2021-06-21 16:41:38 +02:00
Jeroen van Rijn
e036a321a0
Replace core:image's sidecar with explicit metadata_ptr and metadata_type.
...
To unpack, use:
```odin
v: ^png.Info;
if img.metadata_ptr != nil && img.metadata_type == png.Info {
v = (^png.Info)(img.metadata_ptr);
...
}
```
2021-06-21 16:32:42 +02:00
Jeroen van Rijn and GitHub
18471f358e
Merge pull request #1025 from Kelimion/png_info
...
Change PNG's img.sidecar to ^Info, make img.depth an int.
2021-06-20 18:40:46 +02:00
Jeroen van Rijn
55d09251d8
Change PNG's img.sidecar to ^Info, make img.depth an int.
...
For compatibility with the upcoming OpenEXR code, img.depth is now an int.
Like OpenEXR's code, it will now also return metadata as ^Info instead of Info.
The example was updated to retrieve the metadata this way.
It regrettably does not fix : #1018 . That seems to be a codegen issue in the test runner or elsewhere.
2021-06-20 18:27:23 +02:00
Jeroen van Rijn and GitHub
d66fd71d21
Merge pull request #1024 from Kelimion/defer_fix
...
GZIP defer diverging fix in gzip example.
2021-06-20 17:40:15 +02:00
Jeroen van Rijn and GitHub
f10fc2a494
Merge pull request #1023 from Kelimion/test_runner_fix
...
Fix Windows test runner.
2021-06-20 17:37:04 +02:00
Jeroen van Rijn
055d8c5370
Fix Windows test runner.
2021-06-20 17:33:39 +02:00
Jeroen van Rijn
955472bd21
GZIP defer diverging fix in gzip example.
2021-06-20 17:21:18 +02:00
Jeroen van Rijn
8a4b9ddaa3
Fix comment.
2021-06-18 15:42:04 +02:00
Jeroen van Rijn
54a2b6f00e
Add bytes.buffer_create_of_type and bytes.buffer_convert_to_type.
...
Convenience functions to reinterpret or cast one buffer to another type, or create a buffer of a specific type.
Example:
```odin
fmt.println("Convert []f16le (x2) to []f32 (x2).");
b := []u8{0, 60, 0, 60}; // == []f16{1.0, 1.0}
res, backing, had_to_allocate, err := bytes.buffer_convert_to_type(2, f32, f16le, b);
fmt.printf("res : %v\n", res); // [1.000, 1.000]
fmt.printf("backing : %v\n", backing); // &Buffer{buf = [0, 0, 128, 63, 0, 0, 128, 63], off = 0, last_read = Invalid}
fmt.printf("allocated: %v\n", had_to_allocate); // true
fmt.printf("err : %v\n", err); // false
if had_to_allocate { defer bytes.buffer_destroy(backing); }
fmt.println("\nConvert []f16le (x2) to []u16 (x2).");
res2: []u16;
res2, backing, had_to_allocate, err = bytes.buffer_convert_to_type(2, u16, f16le, b);
fmt.printf("res : %v\n", res2); // [15360, 15360]
fmt.printf("backing : %v\n", backing); // Buffer.buf points to `b` because it could be converted in-place.
fmt.printf("allocated: %v\n", had_to_allocate); // false
fmt.printf("err : %v\n", err); // false
if had_to_allocate { defer bytes.buffer_destroy(backing); }
fmt.println("\nConvert []f16le (x2) to []u16 (x2), force_convert=true.");
res2, backing, had_to_allocate, err = bytes.buffer_convert_to_type(2, u16, f16le, b, true);
fmt.printf("res : %v\n", res2); // [1, 1]
fmt.printf("backing : %v\n", backing); // Buffer.buf points to `b` because it could be converted in-place.
fmt.printf("allocated: %v\n", had_to_allocate); // false
fmt.printf("err : %v\n", err); // false
if had_to_allocate { defer bytes.buffer_destroy(backing); }
```
2021-06-18 15:25:36 +02:00
Jeroen van Rijn and GitHub
bc4591fc1e
Merge pull request #1006 from jockus/master
...
Fix for value rather than type used for intrinsics
2021-05-31 14:23:40 +02:00
Jeroen van Rijn
d7dba495fd
Last of the Endian float in math.odin.
2021-05-29 18:27:43 +02:00
Jeroen van Rijn
c05f6b4a31
Even more Endian maths.
2021-05-29 17:52:47 +02:00
Jeroen van Rijn
a0a578c72a
More Endian version of maths procs.
2021-05-29 17:21:54 +02:00
Jeroen van Rijn
55fc2c00c0
Add Endian versions of math routines.
2021-05-29 16:22:47 +02:00
Jeroen van Rijn
6944e2fc04
Add abs_f16 dependency when used.
2021-05-29 15:33:11 +02:00
Jeroen van Rijn
03862d1f48
Mark mem.slice_ptr_to_bytes as deprecated.
...
Use byte_slice instead.
We can't make it an alias *and* mark it as deprecated, regrettably:
```odin
byte_slice :: #force_inline proc "contextless" (data: rawptr, len: int) -> []byte {
return transmute([]u8)Raw_Slice{data=data, len=max(len, 0)};
}
@(deprecated="use byte_slice")
slice_ptr_to_bytes :: byte_slice;
"mem.odin(145:1) Constant alias declarations cannot have attributes"
```
2021-05-06 13:23:17 +02:00
Jeroen van Rijn and GitHub
15ce8b0454
Merge pull request #946 from Kelimion/virtual_allocator
...
Fix typo in core:mem alloc() comment.
2021-05-06 11:33:08 +02:00
Jeroen van Rijn
4f51d74fc2
Fix typo in core:mem alloc() comment.
2021-05-06 11:25:41 +02:00
Jeroen van Rijn and GitHub
f3c4d97250
Merge pull request #942 from Kelimion/grayscale-alpha-extract
...
Fix gray+alpha alpha extract.
2021-05-04 17:49:09 +02:00
Jeroen van Rijn
afb6ebd21e
Fix gray+alpha alpha extract.
2021-05-04 17:48:43 +02:00
Jeroen van Rijn and GitHub
3cf26af600
Merge pull request #941 from Kelimion/compress_error_handling
...
Change General_Error.OK to nil
2021-05-03 15:39:42 +02:00
Jeroen van Rijn
9a39ce6b75
Change General_Error.OK to nil
2021-05-03 15:38:43 +02:00
Jeroen van Rijn and GitHub
ca0f36be42
Merge pull request #940 from Kelimion/convert_error_checks
...
Convert `core:compress` and `core:image` error checks to new union co…
2021-05-03 15:09:52 +02:00
Jeroen van Rijn
59b3c472ca
Convert core:compress and core:image error checks to new union comparison.
...
No more need for `is_kind(err, Error_Value)`, just test err == Error_Value.
2021-05-03 15:08:34 +02:00
Jeroen van Rijn and GitHub
448f834b28
Remove debug print in image helper.
2021-05-03 01:23:03 +02:00
Jeroen van Rijn and GitHub
9212e3176a
Merge pull request #939 from Kelimion/new_png_post_processing
...
Don't need other path for grayscale output.
2021-05-02 21:17:00 +02:00
Jeroen van Rijn
3160a6a12c
Don't need other path for grayscale output.
2021-05-02 21:11:06 +02:00
Jeroen van Rijn and GitHub
ef7b72d14c
Merge pull request #938 from Kelimion/new_png_post_processing
...
Add new PNG post processing options.
2021-05-02 20:39:33 +02:00
Jeroen van Rijn
7d534769d6
Add new PNG post processing options.
2021-05-02 20:38:30 +02:00
Jeroen van Rijn and GitHub
0a81fcc2af
Merge pull request #937 from Kelimion/core_time
...
datetime_to_time's ok should default to true.
2021-05-02 13:24:33 +02:00
Jeroen van Rijn
2451014b6e
datetime_to_time's ok should default to true.
2021-05-02 13:23:57 +02:00
Jeroen van Rijn
038337fd07
Port core:sys/win32 tests to test runner.
2021-05-02 00:10:00 +02:00
Jeroen van Rijn and GitHub
2dbdff07c5
Merge pull request #935 from Kelimion/zlib_level_0
...
ZLIB level 0: LEN/NLEN = i16.
2021-05-01 21:57:36 +02:00
Jeroen van Rijn
2ad8f99790
ZLIB level 0: LEN/NLEN = i16.
2021-05-01 21:56:45 +02:00
Jeroen van Rijn and GitHub
0a0ba95e85
Merge pull request #934 from Kelimion/paeth
...
Fix Paeth for bit depth < 8.
2021-05-01 20:39:40 +02:00
Jeroen van Rijn
433d742183
Fix Paeth for bit depth < 8.
2021-05-01 20:39:00 +02:00
Jeroen van Rijn and GitHub
1ef9b094b6
Merge pull request #932 from Kelimion/png_blend_test
...
PNG: Fix tRNS handling.
2021-05-01 18:28:23 +02:00
Jeroen van Rijn
0659a11a1a
PNG: Fix tRNS handling.
2021-05-01 18:24:31 +02:00
Jeroen van Rijn and GitHub
ae907bf724
Merge pull request #931 from Kelimion/png_blend_test
...
Fix a few more cases in which bKGD wasn't properly applied.
2021-05-01 16:05:48 +02:00
Jeroen van Rijn
db1ef078ff
Fix a few more cases in which bKGD wasn't properly applied.
2021-05-01 16:05:13 +02:00
Jeroen van Rijn and GitHub
c2603297ee
Merge pull request #928 from Kelimion/png_blend_test
...
PNG: Fix test for when premultiplication is needed.
2021-05-01 13:25:49 +02:00
Jeroen van Rijn
a02bcd3bfd
PNG: Fix test for when premultiplication is needed.
2021-05-01 13:16:47 +02:00
Jeroen van Rijn and GitHub
7ef30355cb
Merge pull request #924 from Kelimion/core_compress
...
Add `compress` and `image` to core.
2021-04-30 11:33:41 +02:00
Jeroen van Rijn
06f1eaa153
Use regular allocator from png+gzip's load_from_file.
...
I would've used `os.stream_from_handle`, but:
- Parts of it seem to be implemented for Windows only at the moment.
- PNG's `peek_data` using that stream didn't manage to rewind and thus tried to parse the data after the header as the header.
Two things must happen:
- The `os.stream_from_handle` implementation needs to be fixed.
- PNG and GZIP's parsers need to be able to handle streams that can't rewind or seek (backward).
Those fixes are on my TODO list but are exceed the scope of this patch.
2021-04-30 09:35:43 +02:00
Jeroen van Rijn
58e023e0cf
Add compress and image to core.
2021-04-30 00:21:52 +02:00
Jeroen van Rijn
2942e45ff5
Placate -vet for unrelated core:thread update.
2021-04-13 02:23:14 +02:00
Jeroen van Rijn
aca5c7c1c6
Placate -vet.
2021-04-13 02:18:47 +02:00
Jeroen van Rijn
a1d871360c
Add support to core:windows to add/delete users.
...
main :: proc() {
using fmt;
using windows;
username := "testuser";
password := "testpass";
ok := add_user("", username, password);
fmt.printf("add_user: %v\n", ok);
pi := windows.PROCESS_INFORMATION{};
ok2, path := windows.add_user_profile(username);
fmt.printf("add_user_profile: %v, %v\n", ok2, path);
ok3 := windows.delete_user_profile(username);
fmt.printf("delete_user_profile: %v\n", ok3);
ok4 := windows.delete_user("", username);
fmt.printf("delete_user: %v\n", ok4);
// Has optional bool to not wait on the process before returning.
b := run_as_user(username, password, "C:\\Repro\\repro.exe", "Hellope!", &pi);
fmt.printf("run_as_user: %v %v\n", b, pi);
}
2021-04-13 02:09:44 +02:00
Jeroen van Rijn
f4d0f74dbb
Allow seeding CRC32, CRC64 & Adler32 with previous partial hash.
...
Foo := []u8{'F', 'o','o', '3', 'F', 'o', 'o', '4'};
crc := hash.crc32(Foo[0:4]);
crc = hash.crc32(Foo[4:], crc);
crc_all := hash.crc32(Foo);
fmt.printf("%8x %8x\n", crc, crc_all);
d6285ff7 d6285ff7
a32 := hash.adler32(Foo[0:4]);
a32 = hash.adler32(Foo[4:], a32);
a32_all := hash.adler32(Foo);
fmt.printf("%8x %8x\n", a32, a32_all);
0c5102b0 0c5102b0
2021-03-25 13:48:34 +01:00
Jeroen van Rijn
06c5a7fb3e
Correct overflowed months.
2021-03-23 18:49:50 +01:00
Jeroen van Rijn
781f784375
Add core:datetime_to_time
...
datetime_to_time takes separate parameters for date and time values and returns a time.Time and an `ok` bool.
If the values are out of range, they're considered modulo and ok will be set to false.
2021-03-23 18:41:40 +01:00
Jeroen van Rijn
d80670fe0c
Fix typo in cubic().
2021-03-16 16:34:59 +01:00
Jeroen van Rijn
cefde23232
Remove double removal of extension when using the -out option.
...
When specifying the out parameter, the extension was stripped twice.
If your path contains a ".", this caused issues.
e.g.
cd "C:\Repro\Path With a . In The Name\"
odin run repro.odin -keep-temp-files -out repro.exe
This would cause the files to end up as:
"C:\Repro\Path With a.exe", "C:\Repro\Path With a.ll", "C:\Repro\Path With a.bc" and "C:\Repro\Path With a.obj"
With this patch it works as expected, with or without a . in the file path.
2021-03-06 23:09:15 +01:00
Jeroen van Rijn and GitHub
5dcb5c2ba3
Merge pull request #367 from kevinw/fix-json-parsing
...
Fix some JSON parsing bugs.
2019-04-06 16:35:46 +02:00
Jeroen van Rijn and GitHub
9d552d04ea
Merge pull request #358 from kevinw/master
...
Fix some -vet warnings; change import to core:math/bits
2019-04-06 16:34:01 +02:00
Jeroen van Rijn and GitHub
290c111206
Merge pull request #355 from mattt-b/master
...
Replace calls to deprecated string functions on linux
2019-03-18 15:27:07 +01:00
Jeroen van Rijn and GitHub
4446a1431a
Merge pull request #348 from Kelimion/master
...
Add win32.get_cwd for current working directory and convenience functions for open + save dialogs.
2019-03-09 12:51:14 +01:00
Jeroen van Rijn and GitHub
8c618225bf
Merge pull request #347 from Kelimion/master
...
Fix typo in `cel` tokeniser.
2019-03-04 13:46:51 +01:00
Jeroen van Rijn and GitHub
8fb8b5ed7e
Merge pull request #346 from Kelimion/fix-issue-345
...
Fix #345 : panic when using enum as map key
2019-03-03 13:00:00 +01:00