static adv_error none_mode_set(const none_video_mode* mode) { none_write_line = none_linear_write_line; none_state.color_def = color_def_make_from_index(mode->index); none_state.bytes_per_pixel = index_bytes_per_pixel(mode->index); assert(!none_state.pointer); none_state.pointer = (unsigned char*)malloc(none_state.size); none_state.bytes_per_scanline = (none_state.bytes_per_pixel * mode->crtc.hde + 3) & ~3; none_state.mode_active = 1; return 0; }
adv_color_def fb_color_def(void) { assert(fb_is_active() && fb_mode_is_active()); switch (fb_state.index) { case MODE_FLAGS_INDEX_BGR15 : case MODE_FLAGS_INDEX_BGR16 : case MODE_FLAGS_INDEX_BGR24 : case MODE_FLAGS_INDEX_BGR32 : return color_def_make_rgb_from_sizelenpos( fb_state.bytes_per_pixel, fb_state.varinfo.red.length, fb_state.varinfo.red.offset, fb_state.varinfo.green.length, fb_state.varinfo.green.offset, fb_state.varinfo.blue.length, fb_state.varinfo.blue.offset ); default: return color_def_make_from_index(fb_state.index); } }