title: numpy.float128 doesn't exist in windows, but is called from OpenGL
body: <p>I decided to try using OpenGL VBO in Python to improve FPS. I found code, that worked perfectly fine in Linux OS (Ubuntu), but when I tried launching in Windows OS, the code resulted in a message:
  "GLUT Display callback  with (),{} failed: returning None module 'numpy' has no attribute 'float128'"</p>
  
  <p>So, I can't run the code specifically on Windows, but because I want to create a cross-platform application, I really need to solve this.</p>
  
  <p>I've done a lot of research and only found that numpy.float128 should be replaced to numpy.longdouble. However, because OpenGL VBO is in opengl_accelerate, I don't know how to change the usage there.</p>
  
  <p>This is my entire code.</p>
  
  <pre class="lang-py prettyprint-override"><code>import sys
  import random #for random numbers
  from OpenGL.GL import * #for definition of points
  from OpenGL.GLU import *
  from OpenGL.GLUT import * #for visualization in a window
  import numpy as np
  
  
  AMOUNT = 10
  DIMENSION = 3
  
  def changePoints(points):
      for i in range(0, 3*AMOUNT):
          x = random.uniform(-1.0, 1.0)
          points[i]= points[i]*x
      print(points)
      return points
  
  def displayPoints(points):
      vbo=GLuint(0) # init the Buffer in Python!
      glGenBuffers(1, vbo) # generate a buffer for the vertices
      glBindBuffer(GL_ARRAY_BUFFER, vbo) #bind the vertex buffer
      glBufferData(GL_ARRAY_BUFFER,sys.getsizeof(points), points, GL_STREAM_DRAW)
      glBindBuffer(GL_ARRAY_BUFFER, vbo) #bind the vertex buffer
  
      glEnableClientState(GL_VERTEX_ARRAY) # enable Vertex Array
      glVertexPointer(DIMENSION, GL_FLOAT,0, ctypes.cast(0, ctypes.c_void_p))
      glBindBuffer(GL_ARRAY_BUFFER, vbo) #bind the vertex buffer
      glDrawArrays(GL_POINTS, 0, AMOUNT)
      glDisableClientState(GL_VERTEX_ARRAY) # disable the Vertex Array
      glDeleteBuffers(1, vbo)
  
  ##creates Points
  def Point():
  
      points = np.array([random.uniform(-1.0, 1.0) for _ in range(3*AMOUNT)], dtype = np.float32)
  
      points = changePoints(points)
  
      #Visualization
      displayPoints(points)
  
  
  ##clears the color and depth Buffer, call Point() and swap the buffers of the current window
  def display():
      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
      Point()
      glutSwapBuffers()
  
  def main():
      ##initials GLUT
      glutInit(sys.argv)
      #sets the initial display mode (selects a RGBA mode window; selects a double buffered window; selects a window with a depth buffer)
      glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH)
      #defines the size of the Window
      glutInitWindowSize(800, 1600)
      #creates a window with title
      glutCreateWindow(b'Points') #!string as title is causing a error, because underneath the PyOpenGL call is an old-school C function expecting ASCII text. Solution: pass the string in byte format.
      glutDisplayFunc(display) #sets the display callback for the current window.
      glutMainLoop() #enters the GLUT event processing loop.
  
  main()
  </code></pre>
  
  <p>This is the full error traceback:</p>
  
  <blockquote>
    <p>Traceback (most recent call last):
      File "C:\Users\root\Anaconda3\lib\site-packages\OpenGL\GLUT\special.py", line 130, in safeCall
        return function( *args, **named )
      File "C:/Users/root/Desktop/test/main3.py", line 48, in display
        Point()
      File "C:/Users/root/Desktop/test/main3.py", line 42, in Point
        displayPoints(points)
      File "C:/Users/root/Desktop/test/main3.py", line 23, in displayPoints
        glBufferData(GL_ARRAY_BUFFER,sys.getsizeof(points), points, GL_STREAM_DRAW)
      File "src/latebind.pyx", line 44, in OpenGL_accelerate.latebind.Curry.<strong>call</strong>
      File "C:\Users\root\Anaconda3\lib\site-packages\OpenGL\GL\VERSION\GL_1_5.py", line 86, in glBufferData
        data = ArrayDatatype.asArray( data )
      File "src/arraydatatype.pyx", line 172, in OpenGL_accelerate.arraydatatype.ArrayDatatype.asArray
      File "src/arraydatatype.pyx", line 47, in OpenGL_accelerate.arraydatatype.HandlerRegistry.c_lookup
      File "C:\Users\root\Anaconda3\lib\site-packages\OpenGL\plugins.py", line 16, in load
        return importByName( self.import_path )
      File "C:\Users\root\Anaconda3\lib\site-packages\OpenGL\plugins.py", line 38, in importByName
        module = <strong>import</strong>( ".".join(moduleName), {}, {}, moduleName)
      File "C:\Users\root\Anaconda3\lib\site-packages\OpenGL\arrays\numpymodule.py", line 27, in 
        from OpenGL_accelerate.numpy_formathandler import NumpyHandler
      File "src/numpy_formathandler.pyx", line 55, in init OpenGL_accelerate.numpy_formathandler
    AttributeError: module 'numpy' has no attribute 'float128'
    GLUT Display callback  with (),{} failed: returning None module 'numpy' has no attribute 'float128'</p>
  </blockquote>
  
  <p>Is there any way of either changing the usage of numpy.float128 to numpy.longdouble in opengl_accelerate or making numpy.float128 work in windows?</p>