rendering different colors worksgit add .!
This commit is contained in:
@@ -77,26 +77,41 @@ struct tart_cell tart_set_cell(struct tart_buffer* buffer, struct tart_cell cell
|
||||
}
|
||||
|
||||
tart_byte tart_draw_window(struct tart_window * window, char* rend_buffer) {
|
||||
int p = 0;
|
||||
int offset = 0;
|
||||
int i = 0;
|
||||
window->data = malloc((window->size.x * window->size.y * sizeof(char) * TART_CELL_DATA_SIZE)+ 100 );
|
||||
for (int b = 0;b < 0xFF; b++) {
|
||||
for (int y = 0; y < window->size.y; y++) {
|
||||
for (int x = 0; x < window->size.x; x++) {
|
||||
for (int p = 0; p < TART_CELL_DATA_SIZE;p++) {
|
||||
if(window->buffers[b].cell_count == 0)
|
||||
continue;
|
||||
for (int y = 0; y < window->buffers[b].size.y; y++) {
|
||||
for (int x = 0; x < window->buffers[b].size.x; x++) {
|
||||
// add data to window c buffer.
|
||||
struct tart_cell cell = window->buffers[b].cells[(y*window->buffers[b].size.x) + x];
|
||||
char pre[16];
|
||||
int size = sprintf(pre, "\033[%d;%d;%dm%c\033[0;0m", (int)cell.style, cell.foreground, cell.background, cell.display);
|
||||
for(int preIdx = 0; preIdx < size; preIdx++) {
|
||||
window->data[(y*window->buffers[b].size.x) + x + offset] = pre[preIdx];
|
||||
offset++;
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
window->data[((y)*window->buffers[b].size.x) + offset + window->buffers[b].size.x] = '\n';
|
||||
offset++;
|
||||
|
||||
|
||||
// add cursor move command.
|
||||
i++;
|
||||
}
|
||||
}
|
||||
printf(window->data);
|
||||
fwrite(window->data, sizeof(char), (window->size.x * window->size.y * sizeof(char))+ 100 , stdout);
|
||||
free(window->data);
|
||||
return TART_OK;
|
||||
};
|
||||
|
||||
tart_byte tart_add_cells_to_buffer(struct tart_buffer* buffer, struct tart_cell* cells) {
|
||||
for(int i = 0; i < buffer->cell_count; i++) {
|
||||
buffer->cells[i] = cells[i];
|
||||
}
|
||||
|
||||
return TART_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user