+ #else
+ size_t size = giScreenHeight * giScreenWidth;
+ Video_int_SetBufFmt(PTYBUFFMT_FB);
+ _SysWrite(giTerminalFD, gpScreenBuffer, size*4);
+ #endif
+}
+
+void Video_int_SetBufFmt(int NewFmt)
+{
+ static int current_fmt;
+
+ if( current_fmt == NewFmt )
+ return ;
+
+ struct ptymode mode = {.InputMode = 0, .OutputMode = NewFmt};
+ int rv = _SysIOCtl( giTerminalFD, PTY_IOCTL_SETMODE, &mode );
+ if( rv ) {
+ perror("Can't set PTY to framebuffer mode");
+ exit(-1);
+ }
+
+ current_fmt = NewFmt;