Пример #1
0
int screen_drawRects(SDL_Renderer* renderer, SDL_Rect* rects, int count)
{
	if( SDL_RenderDrawRects(renderer, rects, count) != 0 )
	{
		LOG("draw rects fail: %s", SDL_GetError());
		return 1;
	}
	return 0;
}
Пример #2
0
CAMLprim value
caml_SDL_RenderDrawRects(value renderer, value ml_rects)
{
    unsigned int i;
    unsigned int count = Wosize_val(ml_rects);
    SDL_Rect * rects = malloc(count * sizeof(SDL_Rect));
    for (i = 0; i < count; i++) {
        value _rect = Field(ml_rects, i);
        SDL_Rect_val(&(rects[i]), _rect);
    }
    int r = SDL_RenderDrawRects(
                SDL_Renderer_val(renderer),
                rects, count);
    free(rects);
    if (r) caml_failwith("Sdlrender.draw_rects");
    return Val_unit;
}
Пример #3
0
//Draws an array of rectangles
//param:rectangles->The rectangles to draw
//param:numberOfRectangles->The number of rectangles in the array
//param:color->The color to draw the rectangles
//returns 0 for success, -1 for errors
int SpriteBatch::DrawRects(SDL_Rect* rectangles, int numberOfRectangles, SDL_Color color)
{
	//Check if spritebatch.begin has been called
	if(!begun)
	{
		std::cout<<"Begin must be called before attempting to draw"<<std::endl;
		return -1;
	}

	//Make sure number of rectangles is valid
	if(numberOfRectangles <= 0)
	{
		std::cout<<"Draw Rects error: Size must be greater than 0"<<std::endl;
		return -1;
	}

	int result = 0;

	//Set the draw color
	result = SDL_SetRenderDrawColor(renderer, color.r, color.g, color.b, color.a);

	//Check for color setting problems
	if(result != 0)
	{
		std::cout<<"DrawRects error: Problem setting rectangle color" << std::endl;
		return result;
	}

	//Draw the rectangles
	result = SDL_RenderDrawRects(renderer, rectangles, numberOfRectangles);

	//Check for draw problems
	if(result !=0)
	{
		std::cout<<"DrawRects error: Problem drawing rectangles"<<std::endl;
		return result;
	}

	//Return success
	return result;
}