Fix static array. Add constant buffers. Beginning of textures.
This commit is contained in:
@@ -1,29 +1,43 @@
|
||||
Static_Array :: struct ($T : Type, $N : s64) {
|
||||
Static_Array :: struct (T : Type, N : int) {
|
||||
array : [N] T;
|
||||
|
||||
capacity : s64 = N;
|
||||
count : s64;
|
||||
count : int;
|
||||
}
|
||||
|
||||
// operator [] :: (array : Static_Array($T, $N), index : int) -> T {
|
||||
// assert(index < array.count);
|
||||
// return array.array[index];
|
||||
// }
|
||||
|
||||
// operator []= :: (array : *Static_Array($T, $N), index : int, value : T) {
|
||||
// assert(index < array.count);
|
||||
// array.array[index] = value;
|
||||
// }
|
||||
|
||||
operator *[] :: (array : *Static_Array($T, $N), index : int) -> *T {
|
||||
assert(index < array.count);
|
||||
return *(array.array[index]);
|
||||
operator *[] :: (sa : *Static_Array, index : int) -> *sa.T {
|
||||
assert(index < sa.count);
|
||||
return *sa.array[index];
|
||||
}
|
||||
|
||||
array_add :: (array : *Static_Array($T, $N), item : T) {
|
||||
assert(array.count + 1 < array.capacity);
|
||||
array_add :: (sa : *Static_Array, item : sa.T) {
|
||||
assert(sa.count + 1 < sa.N);
|
||||
|
||||
print("%\n", array[array.count]);
|
||||
array[array.count] = item;
|
||||
array.count += 1;
|
||||
sa.array[sa.count] = item;
|
||||
sa.count += 1;
|
||||
}
|
||||
|
||||
array_add :: (sa : *Static_Array) -> *sa.T {
|
||||
assert(sa.count + 1 < sa.N);
|
||||
|
||||
ptr := *sa.array[sa.count];
|
||||
sa.count += 1;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
pop :: (sa : *Static_Array) -> sa.T {
|
||||
assert(sa.count > 0);
|
||||
elem := sa.array[sa.count - 1];
|
||||
sa.count -= 1;
|
||||
return elem;
|
||||
}
|
||||
|
||||
clear :: (sa : *Static_Array) {
|
||||
sa.count = 0;
|
||||
}
|
||||
|
||||
to_array :: (sa : *Static_Array) -> []sa.T {
|
||||
array : []sa.T;
|
||||
array.count = sa.count;
|
||||
array.data = sa.array.data;
|
||||
return array;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user