mirror of https://github.com/kivy/kivy.git
wip; pretty dirty
This commit is contained in:
parent
0699b85713
commit
73e79b624f
|
@ -8,11 +8,23 @@ with some adapation.
|
||||||
This might become a Kivy widget when experimentation will be done.
|
This might become a Kivy widget when experimentation will be done.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
print 'SETUP KIVY >>'
|
||||||
|
from kivy.logger import Logger
|
||||||
|
import logging
|
||||||
|
Logger.setLevel(logging.TRACE)
|
||||||
|
|
||||||
|
from kivy.config import Config
|
||||||
|
Config.remove_option('input', 'default')
|
||||||
|
Config.remove_option('input', 'mactouch')
|
||||||
|
Config.set('graphics', 'fullscreen', 'auto')
|
||||||
|
print 'SETUP KIVY << done'
|
||||||
|
|
||||||
|
|
||||||
from kivy.clock import Clock
|
from kivy.clock import Clock
|
||||||
from kivy.app import App
|
from kivy.app import App
|
||||||
from kivy.uix.floatlayout import FloatLayout
|
from kivy.uix.floatlayout import FloatLayout
|
||||||
from kivy.core.window import Window
|
from kivy.core.window import Window
|
||||||
|
#Window.clearcolor = None
|
||||||
from kivy.graphics import RenderContext
|
from kivy.graphics import RenderContext
|
||||||
from kivy.properties import StringProperty
|
from kivy.properties import StringProperty
|
||||||
|
|
||||||
|
@ -37,15 +49,16 @@ uniform float time;
|
||||||
|
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
float x = gl_FragCoord.x;
|
// float x = gl_FragCoord.x;
|
||||||
float y = gl_FragCoord.y;
|
// float y = gl_FragCoord.y;
|
||||||
float mov0 = x+y+cos(sin(time)*2.)*100.+sin(x/100.)*1000.;
|
// float mov0 = x+y+cos(sin(time)*2.)*100.+sin(x/100.)*1000.;
|
||||||
float mov1 = y / resolution.y / 0.2 + time;
|
// float mov1 = y / resolution.y / 0.2 + time;
|
||||||
float mov2 = x / resolution.x / 0.2;
|
// float mov2 = x / resolution.x / 0.2;
|
||||||
float c1 = abs(sin(mov1+time)/2.+mov2/2.-mov1-mov2+time);
|
// float c1 = abs(sin(mov1+time)/2.+mov2/2.-mov1-mov2+time);
|
||||||
float c2 = abs(sin(c1+sin(mov0/1000.+time)+sin(y/40.+time)+sin((x+y)/100.)*3.));
|
// float c2 = abs(sin(c1+sin(mov0/1000.+time)+sin(y/40.+time)+sin((x+y)/100.)*3.));
|
||||||
float c3 = abs(sin(c2+cos(mov1+mov2+c2)+cos(mov2)+sin(x/1000.)));
|
// float c3 = abs(sin(c2+cos(mov1+mov2+c2)+cos(mov2)+sin(x/1000.)));
|
||||||
gl_FragColor = vec4( c1,c2,c3,1.0);
|
// gl_FragColor = vec4( c1,c2,c3,1.0);
|
||||||
|
gl_FragColor = vec4(1.0, 1.0, 0., 1.0);
|
||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
@ -64,7 +77,7 @@ class ShaderWidget(FloatLayout):
|
||||||
super(ShaderWidget, self).__init__(**kwargs)
|
super(ShaderWidget, self).__init__(**kwargs)
|
||||||
|
|
||||||
# We'll update our glsl variables in a clock
|
# We'll update our glsl variables in a clock
|
||||||
Clock.schedule_interval(self.update_glsl, 1 / 60.)
|
Clock.schedule_interval(self.update_glsl, 1.)
|
||||||
|
|
||||||
def on_fs(self, instance, value):
|
def on_fs(self, instance, value):
|
||||||
# set the fragment shader to our source code
|
# set the fragment shader to our source code
|
||||||
|
@ -80,6 +93,7 @@ class ShaderWidget(FloatLayout):
|
||||||
self.canvas['resolution'] = map(float, self.size)
|
self.canvas['resolution'] = map(float, self.size)
|
||||||
# This is needed for the default vertex shader.
|
# This is needed for the default vertex shader.
|
||||||
self.canvas['projection_mat'] = Window.render_context['projection_mat']
|
self.canvas['projection_mat'] = Window.render_context['projection_mat']
|
||||||
|
# print self.canvas['projection_mat']
|
||||||
|
|
||||||
|
|
||||||
class PlasmaApp(App):
|
class PlasmaApp(App):
|
||||||
|
|
|
@ -268,10 +268,10 @@ class EventLoopBase(object):
|
||||||
self.dispatch_input()
|
self.dispatch_input()
|
||||||
|
|
||||||
window = self.window
|
window = self.window
|
||||||
if window and window.canvas.needs_redraw:
|
#if window and window.canvas.needs_redraw:
|
||||||
Clock.tick_draw()
|
Clock.tick_draw()
|
||||||
window.dispatch('on_draw')
|
window.dispatch('on_draw')
|
||||||
window.dispatch('on_flip')
|
window.dispatch('on_flip')
|
||||||
|
|
||||||
# don't loop if we don't have listeners !
|
# don't loop if we don't have listeners !
|
||||||
if len(self.event_listeners) == 0:
|
if len(self.event_listeners) == 0:
|
||||||
|
|
|
@ -27,13 +27,11 @@ class ImageLoaderOSXCoreImage(ImageLoaderBase):
|
||||||
'tga', 'tiff', 'wal', 'wmf', 'xbm', 'xpm', 'xv')
|
'tga', 'tiff', 'wal', 'wmf', 'xbm', 'xpm', 'xv')
|
||||||
|
|
||||||
def load(self, filename):
|
def load(self, filename):
|
||||||
print 'before'
|
|
||||||
ret = osxcoreimage.load_raw_image_data(filename)
|
ret = osxcoreimage.load_raw_image_data(filename)
|
||||||
if ret is None:
|
if ret is None:
|
||||||
Logger.warning('Image: Unable to load image <%s>' % filename)
|
Logger.warning('Image: Unable to load image <%s>' % filename)
|
||||||
raise Exception('Unable to load image')
|
raise Exception('Unable to load image')
|
||||||
w, h, imgtype, data = ret
|
w, h, imgtype, data = ret
|
||||||
print 'after'
|
|
||||||
return ImageData(w, h, imgtype, data)
|
return ImageData(w, h, imgtype, data)
|
||||||
|
|
||||||
# register
|
# register
|
||||||
|
|
|
@ -70,11 +70,13 @@ def load_raw_image_data(bytes _url):
|
||||||
# see iphone3d book
|
# see iphone3d book
|
||||||
myImageSourceRef = CGImageSourceCreateWithURL(url, NULL)
|
myImageSourceRef = CGImageSourceCreateWithURL(url, NULL)
|
||||||
if myImageSourceRef == NULL:
|
if myImageSourceRef == NULL:
|
||||||
|
print 'myImageSourceRef is NULL'
|
||||||
return None
|
return None
|
||||||
|
|
||||||
cdef CGImageRef myImageRef
|
cdef CGImageRef myImageRef
|
||||||
myImageRef = CGImageSourceCreateImageAtIndex (myImageSourceRef, 0, NULL)
|
myImageRef = CGImageSourceCreateImageAtIndex (myImageSourceRef, 0, NULL)
|
||||||
if myImageRef == NULL:
|
if myImageRef == NULL:
|
||||||
|
print 'myImageRef is NULL'
|
||||||
return None
|
return None
|
||||||
|
|
||||||
cdef int width = CGImageGetWidth(myImageRef)
|
cdef int width = CGImageGetWidth(myImageRef)
|
||||||
|
@ -96,6 +98,7 @@ def load_raw_image_data(bytes _url):
|
||||||
|
|
||||||
# XXX clean image object
|
# XXX clean image object
|
||||||
|
|
||||||
|
print 'Image:', _url, width, height, imgtype
|
||||||
return (width, height, imgtype, r_data)
|
return (width, height, imgtype, r_data)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -51,12 +51,13 @@ cdef extern from "SDL.h":
|
||||||
int SDL_QUIT
|
int SDL_QUIT
|
||||||
int SDL_WINDOWEVENT
|
int SDL_WINDOWEVENT
|
||||||
int SDL_SYSWMEVENT
|
int SDL_SYSWMEVENT
|
||||||
int SDL_KEYDOWN,
|
int SDL_KEYDOWN
|
||||||
int SDL_KEYUP,
|
int SDL_KEYUP
|
||||||
int SDL_MOUSEMOTION
|
int SDL_MOUSEMOTION
|
||||||
int SDL_MOUSEBUTTONDOWN
|
int SDL_MOUSEBUTTONDOWN
|
||||||
int SDL_MOUSEBUTTONUP
|
int SDL_MOUSEBUTTONUP
|
||||||
int SDL_TEXTINPUT
|
int SDL_TEXTINPUT
|
||||||
|
int SDL_FINGERMOTION
|
||||||
|
|
||||||
# GL Attribute
|
# GL Attribute
|
||||||
int SDL_GL_DEPTH_SIZE
|
int SDL_GL_DEPTH_SIZE
|
||||||
|
@ -67,7 +68,9 @@ cdef extern from "SDL.h":
|
||||||
int SDL_GL_STENCIL_SIZE
|
int SDL_GL_STENCIL_SIZE
|
||||||
int SDL_GL_DOUBLEBUFFER
|
int SDL_GL_DOUBLEBUFFER
|
||||||
int SDL_GL_CONTEXT_MAJOR_VERSION
|
int SDL_GL_CONTEXT_MAJOR_VERSION
|
||||||
|
int SDL_GL_CONTEXT_MINOR_VERSION
|
||||||
int SDL_GL_RETAINED_BACKING
|
int SDL_GL_RETAINED_BACKING
|
||||||
|
int SDL_GL_ACCELERATED_VISUAL
|
||||||
|
|
||||||
# Init flags
|
# Init flags
|
||||||
int SDL_INIT_VIDEO
|
int SDL_INIT_VIDEO
|
||||||
|
@ -84,8 +87,11 @@ cdef extern from "SDL.h":
|
||||||
int SDL_WINDOW_BORDERLESS
|
int SDL_WINDOW_BORDERLESS
|
||||||
int SDL_WINDOW_RESIZABLE
|
int SDL_WINDOW_RESIZABLE
|
||||||
int SDL_WINDOW_FULLSCREEN
|
int SDL_WINDOW_FULLSCREEN
|
||||||
|
int SDL_WINDOW_INPUT_FOCUS
|
||||||
|
int SDL_WINDOW_INPUT_GRABBED
|
||||||
|
int SDL_WINDOW_MOUSE_FOCUS
|
||||||
|
|
||||||
# Window event
|
## Window event
|
||||||
int SDL_WINDOWEVENT_EXPOSED
|
int SDL_WINDOWEVENT_EXPOSED
|
||||||
int SDL_WINDOWEVENT_RESIZED
|
int SDL_WINDOWEVENT_RESIZED
|
||||||
|
|
||||||
|
@ -99,6 +105,8 @@ cdef extern from "SDL.h":
|
||||||
int SDL_GetWindowDisplayMode(SDL_Window *, SDL_DisplayMode *)
|
int SDL_GetWindowDisplayMode(SDL_Window *, SDL_DisplayMode *)
|
||||||
int SDL_SetWindowDisplayMode(SDL_Window *, SDL_DisplayMode *)
|
int SDL_SetWindowDisplayMode(SDL_Window *, SDL_DisplayMode *)
|
||||||
void SDL_GL_SwapWindow(SDL_Window *)
|
void SDL_GL_SwapWindow(SDL_Window *)
|
||||||
|
void SDL_GL_SwapBuffers()
|
||||||
|
int SDL_GL_MakeCurrent(SDL_Window* window, SDL_GLContext context)
|
||||||
|
|
||||||
int SDL_GL_SetSwapInterval(int)
|
int SDL_GL_SetSwapInterval(int)
|
||||||
int SDL_Flip(SDL_Surface *)
|
int SDL_Flip(SDL_Surface *)
|
||||||
|
@ -107,12 +115,16 @@ cdef extern from "SDL.h":
|
||||||
void SDL_GL_DeleteContext(SDL_GLContext)
|
void SDL_GL_DeleteContext(SDL_GLContext)
|
||||||
|
|
||||||
int SDL_PollEvent(SDL_Event *)
|
int SDL_PollEvent(SDL_Event *)
|
||||||
|
void SDL_PumpEvents()
|
||||||
|
int SDL_EventState(unsigned int, int)
|
||||||
|
|
||||||
char *SDL_GetError()
|
char *SDL_GetError()
|
||||||
|
|
||||||
|
|
||||||
cdef SDL_Window *win = NULL
|
cdef SDL_Window *win = NULL
|
||||||
cdef SDL_GLContext ctx = NULL
|
cdef SDL_GLContext ctx = NULL
|
||||||
|
cdef SDL_Surface *surface = NULL
|
||||||
|
|
||||||
cdef int win_flags = 0
|
cdef int win_flags = 0
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,10 +132,39 @@ def die():
|
||||||
raise RuntimeError(<bytes> SDL_GetError())
|
raise RuntimeError(<bytes> SDL_GetError())
|
||||||
|
|
||||||
|
|
||||||
|
#def init_video():
|
||||||
|
# return SDL_Init(SDL_INIT_VIDEO)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#def create_window():
|
||||||
|
# global win
|
||||||
|
# win = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN)
|
||||||
|
# assert win != NULL
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#def create_context():
|
||||||
|
# global ctx
|
||||||
|
# ctx = SDL_GL_CreateContext(win)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#def poll_events():
|
||||||
|
# cdef SDL_Event event
|
||||||
|
# while SDL_PollEvent(&event):
|
||||||
|
# print event.type,
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#def swap():
|
||||||
|
# assert win != NULL
|
||||||
|
# SDL_GL_SwapWindow(win)
|
||||||
|
#
|
||||||
|
#def get_error():
|
||||||
|
# print <bytes> SDL_GetError()
|
||||||
|
|
||||||
|
|
||||||
def setup_window(width, height, use_fake, use_fullscreen):
|
def setup_window(width, height, use_fake, use_fullscreen):
|
||||||
global win, ctx, win_flags
|
global win, ctx, win_flags
|
||||||
|
|
||||||
win_flags = SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS
|
win_flags = SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE
|
||||||
'''
|
'''
|
||||||
win_flags = SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_SHOWN
|
win_flags = SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_SHOWN
|
||||||
if use_fake:
|
if use_fake:
|
||||||
|
@ -136,7 +177,7 @@ def setup_window(width, height, use_fake, use_fullscreen):
|
||||||
die()
|
die()
|
||||||
|
|
||||||
#SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)
|
#SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)
|
||||||
#SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16)
|
##SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16)
|
||||||
#SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1)
|
#SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 1)
|
||||||
#SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8)
|
#SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8)
|
||||||
#SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8)
|
#SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8)
|
||||||
|
@ -150,16 +191,24 @@ def setup_window(width, height, use_fake, use_fullscreen):
|
||||||
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 0);
|
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 0);
|
||||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 0);
|
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 0);
|
||||||
SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, 0);
|
SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, 0);
|
||||||
#SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1);
|
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1);
|
||||||
|
|
||||||
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
|
win = SDL_CreateWindow(NULL, 0, 0, width, height, win_flags)
|
||||||
|
|
||||||
win = SDL_CreateWindow(NULL, 0, 0, 768, 1024, win_flags)
|
|
||||||
if not win:
|
if not win:
|
||||||
die()
|
die()
|
||||||
|
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
|
||||||
|
SDL_GL_SetSwapInterval(1);
|
||||||
|
|
||||||
ctx = SDL_GL_CreateContext(win)
|
ctx = SDL_GL_CreateContext(win)
|
||||||
|
assert ctx != NULL
|
||||||
|
SDL_GL_SetSwapInterval(1);
|
||||||
|
#surface = SDL_GetWindowSurface(win)
|
||||||
|
cdef SDL_DisplayMode mode
|
||||||
|
SDL_GetWindowDisplayMode(win, &mode)
|
||||||
|
return mode.w, mode.h
|
||||||
|
|
||||||
|
|
||||||
def resize_window(w, h):
|
def resize_window(w, h):
|
||||||
|
@ -168,6 +217,8 @@ def resize_window(w, h):
|
||||||
mode.w = w
|
mode.w = w
|
||||||
mode.h = h
|
mode.h = h
|
||||||
SDL_SetWindowDisplayMode(win, &mode)
|
SDL_SetWindowDisplayMode(win, &mode)
|
||||||
|
SDL_GetWindowDisplayMode(win, &mode)
|
||||||
|
print 'SDL resized window size to', mode.w, mode.h
|
||||||
|
|
||||||
|
|
||||||
def set_window_title(str title):
|
def set_window_title(str title):
|
||||||
|
@ -181,8 +232,8 @@ def teardown_window():
|
||||||
|
|
||||||
|
|
||||||
def poll():
|
def poll():
|
||||||
print 'polling'
|
|
||||||
cdef SDL_Event event
|
cdef SDL_Event event
|
||||||
|
|
||||||
if SDL_PollEvent(&event) == 0:
|
if SDL_PollEvent(&event) == 0:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -214,11 +265,11 @@ def poll():
|
||||||
s = PyUnicode_FromString(<char *>event.text.text)
|
s = PyUnicode_FromString(<char *>event.text.text)
|
||||||
return ('textinput', s)
|
return ('textinput', s)
|
||||||
else:
|
else:
|
||||||
print 'receive unknown sdl event', event.type
|
#print 'receive unknown sdl event', event.type
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def flip():
|
def flip():
|
||||||
SDL_GL_SwapWindow(win)
|
SDL_GL_SwapWindow(win)
|
||||||
|
#SDL_GL_SwapBuffers()
|
||||||
|
|
||||||
|
|
|
@ -383,11 +383,13 @@ class WindowBase(EventDispatcher):
|
||||||
from kivy.graphics.transformation import Matrix
|
from kivy.graphics.transformation import Matrix
|
||||||
|
|
||||||
width, height = self.system_size
|
width, height = self.system_size
|
||||||
|
print "system size:", self.system_size
|
||||||
w2 = width / 2.
|
w2 = width / 2.
|
||||||
h2 = height / 2.
|
h2 = height / 2.
|
||||||
|
|
||||||
# prepare the viewport
|
# prepare the viewport
|
||||||
glViewport(0, 0, width, height)
|
glViewport(0, 0, width, height)
|
||||||
|
print "GL_VIEWPORT:", width, height
|
||||||
projection_mat = Matrix()
|
projection_mat = Matrix()
|
||||||
projection_mat.view_clip(0.0, width, 0.0, height, -1.0, 1.0, 0)
|
projection_mat.view_clip(0.0, width, 0.0, height, -1.0, 1.0, 0)
|
||||||
self.render_context['projection_mat'] = projection_mat
|
self.render_context['projection_mat'] = projection_mat
|
||||||
|
|
|
@ -54,6 +54,7 @@ class WindowSDL(WindowBase):
|
||||||
|
|
||||||
elif self._pos is not None:
|
elif self._pos is not None:
|
||||||
os.environ['SDL_VIDEO_WINDOW_POS'] = '%d,%d' % self._pos
|
os.environ['SDL_VIDEO_WINDOW_POS'] = '%d,%d' % self._pos
|
||||||
|
pass
|
||||||
|
|
||||||
# never stay with a None pos, application using w.center will be fired.
|
# never stay with a None pos, application using w.center will be fired.
|
||||||
self._pos = (0, 0)
|
self._pos = (0, 0)
|
||||||
|
@ -75,7 +76,7 @@ class WindowSDL(WindowBase):
|
||||||
|
|
||||||
# setup !
|
# setup !
|
||||||
w, h = self._size
|
w, h = self._size
|
||||||
sdl.setup_window(w, h, use_fake, use_fullscreen)
|
self._size = sdl.setup_window(w, h, use_fake, use_fullscreen)
|
||||||
|
|
||||||
super(WindowSDL, self).create_window()
|
super(WindowSDL, self).create_window()
|
||||||
|
|
||||||
|
@ -93,18 +94,10 @@ class WindowSDL(WindowBase):
|
||||||
self.dispatch('on_close')
|
self.dispatch('on_close')
|
||||||
|
|
||||||
def set_title(self, title):
|
def set_title(self, title):
|
||||||
return
|
sdl.set_window_title(title)
|
||||||
pygame.display.set_caption(title)
|
|
||||||
|
|
||||||
def set_icon(self, filename):
|
def set_icon(self, filename):
|
||||||
return
|
return
|
||||||
try:
|
|
||||||
if not exists(filename):
|
|
||||||
return False
|
|
||||||
icon = pygame.image.load(filename)
|
|
||||||
pygame.display.set_icon(icon)
|
|
||||||
except:
|
|
||||||
Logger.exception('WinPygame: unable to set icon')
|
|
||||||
|
|
||||||
def screenshot(self, *largs, **kwargs):
|
def screenshot(self, *largs, **kwargs):
|
||||||
return
|
return
|
||||||
|
@ -132,7 +125,6 @@ class WindowSDL(WindowBase):
|
||||||
super(WindowPygame, self).on_keyboard(key, scancode, unicode, modifier)
|
super(WindowPygame, self).on_keyboard(key, scancode, unicode, modifier)
|
||||||
|
|
||||||
def flip(self):
|
def flip(self):
|
||||||
print 'flipping'
|
|
||||||
sdl.flip()
|
sdl.flip()
|
||||||
super(WindowSDL, self).flip()
|
super(WindowSDL, self).flip()
|
||||||
|
|
||||||
|
@ -146,7 +138,6 @@ class WindowSDL(WindowBase):
|
||||||
if event is None:
|
if event is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
print 'sdl receive', event
|
|
||||||
action, args = event[0], event[1:]
|
action, args = event[0], event[1:]
|
||||||
if action == 'quit':
|
if action == 'quit':
|
||||||
EventLoop.quit = True
|
EventLoop.quit = True
|
||||||
|
@ -227,6 +218,7 @@ class WindowSDL(WindowBase):
|
||||||
# don't known why, but pygame required a resize event
|
# don't known why, but pygame required a resize event
|
||||||
# for opengl, before mainloop... window reinit ?
|
# for opengl, before mainloop... window reinit ?
|
||||||
self.dispatch('on_resize', *self.size)
|
self.dispatch('on_resize', *self.size)
|
||||||
|
print 'dispatched on_resize, size is', self.size
|
||||||
|
|
||||||
while not EventLoop.quit and EventLoop.status == 'started':
|
while not EventLoop.quit and EventLoop.status == 'started':
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -10,6 +10,8 @@ varying vec2 tex_coord0;
|
||||||
uniform sampler2D texture0;
|
uniform sampler2D texture0;
|
||||||
|
|
||||||
void main (void){
|
void main (void){
|
||||||
gl_FragColor = frag_color * texture2D(texture0, tex_coord0);
|
//gl_FragColor = frag_color * texture2D(texture0, tex_coord0);
|
||||||
|
//gl_FragColor = frag_color;
|
||||||
|
gl_FragColor = vec4(1.);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,8 @@ cdef class Instruction:
|
||||||
|
|
||||||
property needs_redraw:
|
property needs_redraw:
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return bool(self.flags & GI_NEEDS_UPDATE)
|
return True
|
||||||
|
#return bool(self.flags & GI_NEEDS_UPDATE)
|
||||||
|
|
||||||
|
|
||||||
cdef class InstructionGroup(Instruction):
|
cdef class InstructionGroup(Instruction):
|
||||||
|
@ -289,7 +290,7 @@ cdef class VertexInstruction(Instruction):
|
||||||
size: self.size
|
size: self.size
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The filename will be searched with the
|
The filename will be searched with the
|
||||||
:func:`kivy.resources.resource_find` function.
|
:func:`kivy.resources.resource_find` function.
|
||||||
|
|
||||||
|
@ -340,7 +341,7 @@ cdef class VertexInstruction(Instruction):
|
||||||
|
|
||||||
cdef class Callback(Instruction):
|
cdef class Callback(Instruction):
|
||||||
'''.. versionadded:: 1.0.4
|
'''.. versionadded:: 1.0.4
|
||||||
|
|
||||||
A Callback is an instruction that will be called when the drawing
|
A Callback is an instruction that will be called when the drawing
|
||||||
operation is performed. When adding instructions to a canvas, you can do
|
operation is performed. When adding instructions to a canvas, you can do
|
||||||
this::
|
this::
|
||||||
|
@ -545,7 +546,7 @@ cdef CanvasBase getActiveCanvas():
|
||||||
global ACTIVE_CANVAS
|
global ACTIVE_CANVAS
|
||||||
return ACTIVE_CANVAS
|
return ACTIVE_CANVAS
|
||||||
|
|
||||||
# Canvas Stack, for internal use so canvas can be bound
|
# Canvas Stack, for internal use so canvas can be bound
|
||||||
# inside other canvas, and restroed when other canvas is done
|
# inside other canvas, and restroed when other canvas is done
|
||||||
cdef list CANVAS_STACK = list()
|
cdef list CANVAS_STACK = list()
|
||||||
|
|
||||||
|
@ -559,7 +560,7 @@ cdef popActiveCanvas():
|
||||||
ACTIVE_CANVAS = CANVAS_STACK.pop()
|
ACTIVE_CANVAS = CANVAS_STACK.pop()
|
||||||
|
|
||||||
|
|
||||||
#TODO: same as canvas, move back to context.pyx..fix circular import
|
#TODO: same as canvas, move back to context.pyx..fix circular import
|
||||||
#on actual import from python problem
|
#on actual import from python problem
|
||||||
include "common.pxi"
|
include "common.pxi"
|
||||||
from vertex cimport *
|
from vertex cimport *
|
||||||
|
|
|
@ -231,6 +231,7 @@ cdef class Shader:
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
Logger.info('Shader: %s compiled successfully' % ctype)
|
Logger.info('Shader: %s compiled successfully' % ctype)
|
||||||
|
print <bytes> source
|
||||||
return shader
|
return shader
|
||||||
|
|
||||||
cdef str get_shader_log(self, shader):
|
cdef str get_shader_log(self, shader):
|
||||||
|
|
|
@ -482,7 +482,7 @@ cdef class BorderImage(Rectangle):
|
||||||
hs[0], vs[1], ths[0], tvs[1], #v11
|
hs[0], vs[1], ths[0], tvs[1], #v11
|
||||||
hs[1], vs[1], ths[1], tvs[1], #v12
|
hs[1], vs[1], ths[1], tvs[1], #v12
|
||||||
hs[2], vs[1], ths[2], tvs[1], #v13
|
hs[2], vs[1], ths[2], tvs[1], #v13
|
||||||
hs[2], vs[2], ths[2], tvs[2], #v14
|
hs[2], vs[2], ths[2], tvs[2], #v14
|
||||||
hs[1], vs[2], ths[1], tvs[2]] #v15
|
hs[1], vs[2], ths[1], tvs[2]] #v15
|
||||||
|
|
||||||
cdef int *indices = [
|
cdef int *indices = [
|
||||||
|
|
|
@ -17,6 +17,8 @@ import kivy
|
||||||
resource_paths = [
|
resource_paths = [
|
||||||
'.',
|
'.',
|
||||||
dirname(sys.argv[0]),
|
dirname(sys.argv[0]),
|
||||||
|
# XXX iOS Hack; do properly. not sure how yet
|
||||||
|
join(dirname(sys.argv[0]), 'YourApp'),
|
||||||
dirname(kivy.__file__)]
|
dirname(kivy.__file__)]
|
||||||
|
|
||||||
|
|
||||||
|
|
5
setup.py
5
setup.py
|
@ -172,8 +172,9 @@ if True:
|
||||||
sdl_extra_link_args = []
|
sdl_extra_link_args = []
|
||||||
if platform == 'darwin':
|
if platform == 'darwin':
|
||||||
# Paths as per homebrew (modified formula to use hg checkout)
|
# Paths as per homebrew (modified formula to use hg checkout)
|
||||||
sdl_includes = ['/usr/local/Cellar/sdl/HEAD/include/SDL']
|
sdl_includes = ['/Users/dennda/dev/sdl-1.3/include']
|
||||||
sdl_extra_link_args += ['-L', '/Users/dennda/dev/sdl-1.3/Xcode-iPhoneOS/SDL/build/SDLiPhoneOS.build/Debug-iphoneos/libSDL.build/Objects-normal/armv7']
|
#sdl_extra_link_args += ['-L', '/Users/dennda/dev/sdl-1.3/Xcode-iPhoneOS/SDL/build/SDLiPhoneOS.build/Debug-iphoneos/libSDL.build/Objects-normal/armv7']
|
||||||
|
sdl_extra_link_args += ['-L', '/Users/dennda/dev/sdl-1.3/Xcode-iPhoneOS/SDL/build/Debug-iphoneos/']
|
||||||
sdl_extra_link_args += ['-framework', 'Foundation']
|
sdl_extra_link_args += ['-framework', 'Foundation']
|
||||||
sdl_extra_link_args += ['-framework', 'UIKit']
|
sdl_extra_link_args += ['-framework', 'UIKit']
|
||||||
sdl_extra_link_args += ['-framework', 'AudioToolbox']
|
sdl_extra_link_args += ['-framework', 'AudioToolbox']
|
||||||
|
|
Loading…
Reference in New Issue