def on_draw(self): """ clear background """ glEnable(GL_NORMALIZE) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) height_per_panel = self.SETTINGS.WINDOW_HEIGHT_CURRENT / self.NBR_CHANNELS for panel in range(self.NBR_CHANNELS): """ start - panel data """ glPushMatrix() glViewport(0, panel * height_per_panel, self.SETTINGS.WINDOW_WIDTH_CURRENT, height_per_panel) # apply current scaling (if any) to the active panel if self.SETTINGS.CURRENT_glOrtho_MATRIX: gl_ortho_projection( self.SETTINGS.CURRENT_glOrtho_MATRIX[0], self.SETTINGS.CURRENT_glOrtho_MATRIX[1], self.SETTINGS.CURRENT_glOrtho_MATRIX[2], self.SETTINGS.CURRENT_glOrtho_MATRIX[3], ) # draw lines # """ draw vertical line first """ if self.SHOW_VERTICAL_LINE: self.line_ver.draw() """ draw data plot """ glLineWidth(3.0) # TODO: this is a temporary situation with one VBO per panel! glBindBuffer(GL_ARRAY_BUFFER, self.vbo_colors[panel][0]) set_glColorPointer_default(n_COORDINATES_PER_COLOR) # TODO: this is a temporary situation with one VBO per panel! gl_on_draw_default(self.vbo_data[panel][0], n_COORDINATES_PER_VERTEX, self.nPoints, GL_LINE_STRIP) """ draw horizontal line - which is made off 2 points only """ if self.SHOW_HORIZONTAL_LINE: self.line_hor.draw() glPopMatrix() """ end - panel data """ # draw axes, tics and labels # if self.SHOW_AXES: self.coord_axes.draw() self.y_axis_tics.draw(self.Y_LIMS) # go back to main perspective and show the FPT glPushMatrix() glViewport(0, 0, self.SETTINGS.WINDOW_WIDTH_CURRENT, self.SETTINGS.WINDOW_HEIGHT_CURRENT) gl_ortho_projection( self.RESIZE_OFFSET_X, self.SETTINGS.WINDOW_WIDTH_CURRENT, self.RESIZE_OFFSET_Y, self.SETTINGS.WINDOW_HEIGHT_CURRENT, ) # draw FPS # if self.SHOW_FPS: self.fps_display.draw() glPopMatrix()
def on_draw(self): ''' clear background ''' glEnable(GL_NORMALIZE) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) height_per_panel = (self.SETTINGS.WINDOW_HEIGHT_CURRENT / self.NBR_CHANNELS) for panel in range(self.NBR_CHANNELS): ''' start - panel data ''' glPushMatrix() glViewport(0, panel * height_per_panel, self.SETTINGS.WINDOW_WIDTH_CURRENT, height_per_panel) # apply current scaling (if any) to the active panel if self.SETTINGS.CURRENT_glOrtho_MATRIX: gl_ortho_projection(self.SETTINGS.CURRENT_glOrtho_MATRIX[0], self.SETTINGS.CURRENT_glOrtho_MATRIX[1], self.SETTINGS.CURRENT_glOrtho_MATRIX[2], self.SETTINGS.CURRENT_glOrtho_MATRIX[3]) # draw lines # ''' draw vertical line first ''' if self.SHOW_VERTICAL_LINE: self.line_ver.draw() ''' draw data plot ''' glLineWidth(3.0) # TODO: this is a temporary situation with one VBO per panel! glBindBuffer(GL_ARRAY_BUFFER, self.vbo_colors[panel][0]) set_glColorPointer_default(n_COORDINATES_PER_COLOR) # TODO: this is a temporary situation with one VBO per panel! gl_on_draw_default(self.vbo_data[panel][0], n_COORDINATES_PER_VERTEX, self.nPoints, GL_LINE_STRIP) ''' draw horizontal line - which is made off 2 points only ''' if self.SHOW_HORIZONTAL_LINE: self.line_hor.draw() glPopMatrix() ''' end - panel data ''' # draw axes, tics and labels # if self.SHOW_AXES: self.coord_axes.draw() self.y_axis_tics.draw(self.Y_LIMS) # go back to main perspective and show the FPT glPushMatrix() glViewport(0, 0, self.SETTINGS.WINDOW_WIDTH_CURRENT, self.SETTINGS.WINDOW_HEIGHT_CURRENT) gl_ortho_projection(self.RESIZE_OFFSET_X, self.SETTINGS.WINDOW_WIDTH_CURRENT, self.RESIZE_OFFSET_Y, self.SETTINGS.WINDOW_HEIGHT_CURRENT) # draw FPS # if self.SHOW_FPS: self.fps_display.draw() glPopMatrix()
def draw(self): ''' draw horizontal line - which is made off 2 points only ''' glLineWidth(self.LINE_WIDTH) glBindBuffer(GL_ARRAY_BUFFER, self.color_id) set_glColorPointer_default(self.n_COORDINATES_PER_COLOR) gl_on_draw_default(self.vbo_id, self.n_COORDINATES_PER_VERTEX, 2, GL_LINE_STRIP)
def on_draw(self): ''' clear background ''' glEnable(GL_NORMALIZE) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) # calculate the height per panel height_per_panel = (self.mainapp.SETTINGS.WINDOW_HEIGHT_CURRENT / self.mainapp.NBR_CHANNELS) # calculate how many points we need to render nbr_points_to_draw = self.calc_nbr_points_to_draw() # loop over all panels for panel in range(self.mainapp.NBR_CHANNELS): ''' START THIS PANEL ''' glPushMatrix() glViewport(0, panel * height_per_panel, self.mainapp.SETTINGS.WINDOW_WIDTH_CURRENT, height_per_panel) # apply current scaling (if any) to the active panel if self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX: gl_ortho_projection(self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX[0], self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX[1], self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX[2], self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX[3]) # draw lines # ''' draw vertical line first ''' if self.mainapp.SHOW_VERTICAL_LINE: self.mainapp.line_ver.draw() ''' start - panel data ''' # TODO: make line width a parameter. Line width must be set AFTER the # glPushMatrix() statement above. glLineWidth(3.0) ''' draw data plot ''' # TODO: this is a temporary situation with one VBO per panel! glBindBuffer(GL_ARRAY_BUFFER, self.mainapp.vbo_colors[panel][0]) set_glColorPointer_default(n_COORDINATES_PER_COLOR) # TODO: this is a temporary situation with one VBO per panel! gl_on_draw_default(self.mainapp.vbo_data[panel][0], n_COORDINATES_PER_VERTEX, nbr_points_to_draw, GL_LINE_STRIP) ''' end - panel data ''' ''' draw horizontal line - which is made off 2 points only ''' if self.mainapp.SHOW_HORIZONTAL_LINE: self.mainapp.line_hor.draw() glPopMatrix() ''' END THIS PANEL ''' # draw axes, tics and labels # if self.mainapp.SHOW_AXES: self.mainapp.coord_axes.draw() self.mainapp.y_axis_tics.draw(self.mainapp.Y_LIMS) # go back to main perspective and show the FPT glPushMatrix() glViewport(0, 0, self.mainapp.SETTINGS.WINDOW_WIDTH_CURRENT, self.mainapp.SETTINGS.WINDOW_HEIGHT_CURRENT) gl_ortho_projection(self.mainapp.RESIZE_OFFSET_X, self.mainapp.SETTINGS.WINDOW_WIDTH_CURRENT, self.mainapp.RESIZE_OFFSET_Y, self.mainapp.SETTINGS.WINDOW_HEIGHT_CURRENT) # draw FPS # if self.mainapp.SHOW_FPS: self.mainapp.fps_display.draw() glPopMatrix()
def on_draw(self): # 1. Quit here if we are not supposed to draw anything new. This way the queue # keeps growing and we don't miss anything. if not self.mainapp.DO_DRAW: return ''' clear background ''' glEnable(GL_NORMALIZE) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) # calculate the height per panel height_per_panel = (self.mainapp.SETTINGS.WINDOW_HEIGHT_CURRENT / self.mainapp.NBR_CHANNELS) # loop over all panels for panel in range(self.mainapp.NBR_CHANNELS): ''' START THIS PANEL ''' glPushMatrix() glViewport(0, panel * height_per_panel, self.mainapp.SETTINGS.WINDOW_WIDTH_CURRENT, height_per_panel) # apply current scaling (if any) to the active panel if self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX: gl_ortho_projection(self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX[0], self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX[1], self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX[2], self.mainapp.SETTINGS.CURRENT_glOrtho_MATRIX[3]) ''' start - panel data ''' # TODO: make line width a parameter. Line width must be set AFTER the # glPushMatrix() statement above. glLineWidth(3.0) # set the color for this VBO # TODO: this is a temporary situation with one VBO per panel! glBindBuffer(GL_ARRAY_BUFFER, self.mainapp.vbo_colors[panel][0]) set_glColorPointer_default(n_COORDINATES_PER_COLOR) # TODO: this is a temporary situation with one VBO per panel! self.render_moving_line(self.mainapp.vbo_data[panel][0], GL_LINE_STRIP, panel) ''' end - panel data ''' ''' draw horizontal line - which is made off 2 points only ''' if self.mainapp.SHOW_HORIZONTAL_LINE: self.mainapp.line_hor.draw() glPopMatrix() ''' END THIS PANEL ''' # draw axes, tics and labels # if self.mainapp.SHOW_AXES: self.mainapp.coord_axes.draw() self.mainapp.y_axis_tics.draw(self.mainapp.Y_LIMS) # go back to main perspective and show the FPT glPushMatrix() glViewport(0, 0, self.mainapp.SETTINGS.WINDOW_WIDTH_CURRENT, self.mainapp.SETTINGS.WINDOW_HEIGHT_CURRENT) gl_ortho_projection(self.mainapp.RESIZE_OFFSET_X, self.mainapp.SETTINGS.WINDOW_WIDTH_CURRENT, self.mainapp.RESIZE_OFFSET_Y, self.mainapp.SETTINGS.WINDOW_HEIGHT_CURRENT) # draw FPS # if self.mainapp.SHOW_FPS: self.mainapp.fps_display.draw() glPopMatrix()