Mixing GL/SDL commands to draw lines

The program below tries to draw two lines.

On my laptop both lines will draw. On my desktop only line 1 will draw.

I think I’m missing something from my code to get the GL lines set up right. Can anyone point me in the right direction?

Code:
#include “stdafx.h”
#include “SDL.h”
#include “SDL_opengl.h”

#pragma comment(lib, “opengl32.lib”)
#pragma comment(lib, “glu32.lib”)

int _tmain(int argc, _TCHAR* argv[])
{
if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
printf(“SDL_Init failed: %s\n”, SDL_GetError());
return 0;
}

SDL_Window *window;
window = SDL_CreateWindow("SDL Window", 100,100,500,500, SDL_WINDOW_SHOWN);
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

SDL_Event event;
bool done = false;

while (!done ) {
	if(SDL_PollEvent(&event)){
		switch(event.type)
			case SDL_QUIT:
				done = true;
	}
	SDL_SetRenderDrawColor(renderer, 255,255,255,255);
	SDL_RenderClear(renderer);

	// Line 1
	SDL_SetRenderDrawColor(renderer, 0,0,0,255);
	SDL_RenderDrawLine(renderer,0,0,500,500);

	// Line 2
	glColor4ub( 255,0,0,255);
	glLineWidth( 5 ); 
	glBegin(GL_LINES);
	glVertex2i(500,0);
	glVertex2i(0,500);
	glEnd();
	glLineWidth( 1.0f ); 

	SDL_RenderPresent(renderer);		
}

}

make sure to use the same renderer (use the renderer hint to set it)Am 25.02.2013 um 16:04 schrieb “pvc” :

The program below tries to draw two lines.

On my laptop both lines will draw. On my desktop only line 1 will draw.

I think I’m missing something from my code to get the GL lines set up right. Can anyone point me in the right direction?

Code:
#include “stdafx.h”
#include “SDL.h”
#include “SDL_opengl.h”

#pragma comment(lib, “opengl32.lib”)
#pragma comment(lib, “glu32.lib”)

int _tmain(int argc, _TCHAR* argv[])
{
if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
printf(“SDL_Init failed: %s\n”, SDL_GetError());
return 0;
}

SDL_Window *window;
window = SDL_CreateWindow("SDL Window", 100,100,500,500, SDL_WINDOW_SHOWN);

SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

SDL_Event event;
bool done = false;

while (!done ) {
if(SDL_PollEvent(&event)){
switch(event.type)
case SDL_QUIT:
done = true;
}
SDL_SetRenderDrawColor(renderer, 255,255,255,255);
SDL_RenderClear(renderer);

  // Line 1
  SDL_SetRenderDrawColor(renderer, 0,0,0,255);
  SDL_RenderDrawLine(renderer,0,0,500,500);

  // Line 2
  glColor4ub( 255,0,0,255);
  glLineWidth( 5 ); 
  glBegin(GL_LINES);
  glVertex2i(500,0);
  glVertex2i(0,500);
  glEnd();
  glLineWidth( 1.0f ); 

  SDL_RenderPresent(renderer);      

}
}


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Martin Gerhardy wrote:

make sure to use the same renderer (use the renderer hint to set it)

You mean SDL_SetHint? I’m not sure how to use this to make sure both use the same renderer.

Ok, looks like I need to do something like this before opening my window:

Code:
SDL_SetHint(SDL_HINT_RENDER_DRIVER,“opengl”);