How do I solve the following error in Linux Graphics C program?

I am trying to compile the following code,but it gives me a error message as listed below. I am a beginner in linux c graphics and cannot figure it out. Can anyone suggest a solution?

code:

#include<stdio.h>
#include<graphics.h>
void main()
{
      int gd = DETECT, gm;
      int dx, dy, p, end;
      float x1, x2, y1, y2, x, y;
      initgraph(&gd, &gm,NULL);
      printf("Enter Value of X1: ");
      scanf("%f", &x1);
      printf("Enter Value of Y1: ");
      scanf("%f", &y1);
      printf("Enter Value of X2: ");
      scanf("%f", &x2);
      printf("Enter Value of Y2: ");
      scanf("%f", &y2);

      dx = abs(x1 - x2);
      dy = abs(y1 - y2);

      p = 2 * dy - dx;
      if(x1 > x2)
      {
            x = x2;
            y = y2;
            end = x1;
      }
      else
      {
            x = x1;
            y = y1;
            end = x2;
      }
      putpixel(x, y, 10);
      while(x < end)
      {
            x = x + 1;
            if(p < 0)
            {
                  p = p + 2 * dy;
            }
            else
            {
                  y = y + 1;
                  p = p + 2 * (dy - dx);
            }
            putpixel(x, y, 10);
      }
      getch();
      closegraph();
}

error message:

meshramsd@ubuntu:~/libgraph-1.0.2$ ./b
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
b: ../../src/xcb_io.c:274: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
b: ../../src/xcb_io.c:274: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
Aborted (core dumped)

Answers


You can try using libsvga which seems to run fine on Linux Mint - I ran Mint under Virtualbox on a Mac with no problems.

I installed the following packages:

sudo apt-get install svgalib-bin libsvga1 libsvga1-dev

And then I hacked your code into the following:

#include <stdlib.h>
#include <math.h>
#include <unistd.h>
#include <vga.h>
#include<stdio.h>

void main()
{
   int dx, dy, p, end;

   /* detect the chipset and give up supervisor rights */
   if (vga_init() < 0)
        return EXIT_FAILURE;

   vga_setmode(G1024x768x256);  /* some low resolution dont work */ 
   vga_setcolor(14);         /* color of pixel */

   float x1, x2, y1, y2, x, y;
   x1=10;
   y1=40;
   x2=800;
   y2=500;

   dx = abs(x1 - x2);
   dy = abs(y1 - y2);

   p = 2 * dy - dx;
   if(x1 > x2)
   {
       x = x2;
       y = y2;
       end = x1;
   } else {
       x = x1;
       y = y1;
       end = x2;
   }
   vga_drawpixel(x, y);
   while(x < end){
      x = x + 1;
      if(p < 0)
      {
         p = p + 2 * dy;
      } else {
         y = y + 1;
         p = p + 2 * (dy - dx);
      }
      vga_drawpixel(x, y);
   }
   sleep(10);

   /* restore textmode and fall back to ordinary text console handling */
   vga_setmode(TEXT);

}

I compiled like this:

gcc graphics.c -lvga -lm -o graphics

and ran with:

sudo ./graphics

I got this output - you can change the numbers easily enough if you want a different colour or size.


Need Your Help

error in dyn.load in Rcpp package in mac

r macos installation clang rcpp

I have a problem in loading compiled object Rcpp compiled object. I am compiling RcppSMC package from source. I

Comparing NaN values for equality in Javascript

javascript comparison equality nan

I need to compare two numeric values for equality in Javascript. The values may be NaN as well.