#include "ati_meminfo.h"
#include <stdio.h>
#include <GL/glut.h>

#define VBO_FREE_MEMORY_ATI          0x87FB
#define TEXTURE_FREE_MEMORY_ATI      0x87FC
#define RENDERBUFFER_FREE_MEMORY_ATI 0x87FD

void
ati_meminfo (void)
{
  GLint param[4];

  glGetIntegerv (VBO_FREE_MEMORY_ATI, param);
  printf ("VBO_FREE_MEMORY_ATI\n");
  printf ("  Total memory free in the pool: %i kilobytes\n", param[0]);
  printf ("  Largest available free block in the pool: %i kilobytes\n",
	  param[1]);
  printf ("  Total auxiliary memory free: %i kilobytes\n", param[2]);
  printf ("  Largest auxiliary free block: %i kilobytes\n", param[3]);
  printf ("\n");

  glGetIntegerv (TEXTURE_FREE_MEMORY_ATI, param);
  printf ("TEXTURE_FREE_MEMORY_ATI\n");
  printf ("  Total memory free in the pool: %i kilobytes\n", param[0]);
  printf ("  Largest available free block in the pool: %i kilobytes\n",
	  param[1]);
  printf ("  Total auxiliary memory free: %i kilobytes\n", param[2]);
  printf ("  Largest auxiliary free block: %i kilobytes\n", param[3]);
  printf ("\n");

  glGetIntegerv (RENDERBUFFER_FREE_MEMORY_ATI, param);
  printf ("RENDERBUFFER_FREE_MEMORY_ATI\n");
  printf ("  Total memory free in the pool: %i kilobytes\n", param[0]);
  printf ("  Largest available free block in the pool: %i kilobytes\n",
	  param[1]);
  printf ("  Total auxiliary memory free: %i kilobytes\n", param[2]);
  printf ("  Largest auxiliary free block: %i kilobytes\n", param[3]);
  printf ("\n");

  return;
}