Graphics framework for GR-PEACH. When you use this program, we judge you have agreed to the following contents. https://developer.mbed.org/teams/Renesas/wiki/About-LICENSE

Dependents:   ImageZoomInout_Sample ImageRotaion_Sample ImageScroll_Sample GR-PEACH_LCD_4_3inch_Save_to_USB ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers window_surfaces.hpp Source File

window_surfaces.hpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * DISCLAIMER
00003 * This software is supplied by Renesas Electronics Corporation and is only
00004 * intended for use with Renesas products. No other uses are authorized. This
00005 * software is owned by Renesas Electronics Corporation and is protected under
00006 * all applicable laws, including copyright laws.
00007 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
00008 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
00009 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
00010 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
00011 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
00012 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
00013 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
00014 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
00015 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
00016 * Renesas reserves the right, without notice, to make changes to this software
00017 * and to discontinue the availability of this software. By using this software,
00018 * you agree to the additional terms and conditions found by accessing the
00019 * following link:
00020 * http://www.renesas.com/disclaimer
00021 * Copyright (C) 2014 - 2015 Renesas Electronics Corporation. All rights reserved.
00022 *******************************************************************************/
00023 /**
00024 * @file  window_surfaces.hpp
00025 * @brief   $Module: CLibCommon $ $PublicVersion: 1.20 $ (=CLIB_VERSION)
00026 * $Rev: 47 $
00027 * $Date:: 2014-01-06 18:18:48 +0900#$
00028 * - Description: Window Surfaces for mbed style C++ API
00029 */
00030 
00031 #ifndef  WINDOW_SURFACES_HPP
00032 #define  WINDOW_SURFACES_HPP
00033 
00034 /******************************************************************************
00035 Includes   <System Includes> , "Project Includes"
00036 ******************************************************************************/
00037 #include  "r_ospl_typedef.h"
00038 #include  "window_surfaces_typedef.h "
00039 #include  "RGA.h"
00040 
00041 
00042 /******************************************************************************
00043 Macro definitions
00044 ******************************************************************************/
00045 
00046 /******************************************************************************
00047 Typedef definitions
00048 ******************************************************************************/
00049 
00050 class  WindowSurfacesConfigClass;
00051 #ifdef  IS_WINDOW_SURFACES_EX
00052 class  GraphicsClass;
00053 class  LayerAttributes;
00054 #endif
00055 
00056 
00057 /***********************************************************************
00058 * Class: WindowSurfacesClass
00059 *    mbed style C++ version of <window_surfaces_t>
00060 ************************************************************************/
00061 class  WindowSurfacesClass {
00062 public:
00063     /**
00064 * @brief   WindowSurfacesClass
00065 *
00066 * @par Parameters
00067 *    None
00068 * @return  None.
00069 */
00070     WindowSurfacesClass();
00071     ~WindowSurfacesClass();
00072 
00073     /**
00074 * @brief   initialize
00075 *
00076 * @par Parameters
00077 *    None
00078 * @return  None.
00079 */
00080     errnum_t  initialize( WindowSurfacesConfigClass& in_out_config );
00081 
00082     /**
00083 * @brief   destroy
00084 *
00085 * @par Parameters
00086 *    None
00087 * @return  None.
00088 */
00089     void  destroy();
00090 
00091     /**
00092 * @brief   get_layer_frame_buffer
00093 *
00094 * @par Parameters
00095 *    None
00096 * @return  None.
00097 */
00098     errnum_t  get_layer_frame_buffer( int_fast32_t const  layer_num,  frame_buffer_t** const  out_frame_buffer );
00099 
00100     /**
00101 * @brief   swap_buffers
00102 *
00103 * @par Parameters
00104 *    None
00105 * @return  None.
00106 */
00107     #ifdef  IS_WINDOW_SURFACES_EX
00108     errnum_t  swap_buffers( int_fast32_t const  layer_num,  Canvas2D_ContextClass&  context );
00109     #else
00110     errnum_t  swap_buffers( int_fast32_t const  layer_num,  const void* const  null_context );
00111     #endif
00112 
00113     /**
00114 * @brief   swap_buffers_start
00115 *
00116 * @par Parameters
00117 *    None
00118 * @return  None.
00119 */
00120     errnum_t  swap_buffers_start( int_fast32_t const  layer_num,  r_ospl_async_t* async );
00121 
00122     /**
00123 * @brief   wait_for_v_sync
00124 *
00125 * @par Parameters
00126 *    None
00127 * @return  None.
00128 */
00129     errnum_t  wait_for_v_sync( int_fast32_t const  swap_interval,  bool_t const  is_1_v_sync_at_minimum );
00130 
00131     /**
00132 * @brief   alloc_offscreen_stack
00133 *
00134 * @par Parameters
00135 *    None
00136 * @return  None.
00137 */
00138     errnum_t  alloc_offscreen_stack( frame_buffer_t* const  in_out_frame_buffer );
00139 
00140     /**
00141 * @brief   free_offscreen_stack
00142 *
00143 * @par Parameters
00144 *    None
00145 * @return  None.
00146 */
00147     errnum_t  free_offscreen_stack( const frame_buffer_t* const  frame_buffer );
00148 
00149 #ifdef  IS_WINDOW_SURFACES_EX
00150     /**
00151 * @brief   do_message_loop
00152 *
00153 * @par Parameters
00154 *    None
00155 * @return  None.
00156 */
00157     errnum_t  do_message_loop();
00158 
00159     /**
00160 * @brief   access_layer_attributes
00161 *
00162 * @par Parameters
00163 *    None
00164 * @return  None.
00165 */
00166     errnum_t  access_layer_attributes( LayerAttributes& in_out_Attributes );
00167 #endif
00168 
00169 private:
00170     window_surfaces_t*  _self;
00171 };
00172 
00173 
00174 /***********************************************************************
00175 * Class: WindowSurfacesConfigClass
00176 *    mbed style C++ version of <window_surfaces_config_t>
00177 ************************************************************************/
00178 class  WindowSurfacesConfigClass : public window_surfaces_config_t {
00179 public:
00180     /**
00181 * @brief   WindowSurfacesConfigClass
00182 *
00183 * @par Parameters
00184 *    None
00185 * @return  None.
00186 */
00187     WindowSurfacesConfigClass();
00188 };
00189 
00190 
00191 /***********************************************************************
00192 * Class: LayerAttributes
00193 *    mbed style C++ version of <layer_attributes_t>
00194 ************************************************************************/
00195 #ifdef  IS_WINDOW_SURFACES_EX
00196 class  LayerAttributes : public layer_attributes_t {
00197 public:
00198     /**
00199 * @brief   LayerAttributes
00200 *
00201 * @par Parameters
00202 *    None
00203 * @return  None.
00204 */
00205     LayerAttributes();
00206 };
00207 #endif
00208 
00209 
00210 /******************************************************************************
00211 Variable Externs
00212 ******************************************************************************/
00213 
00214 /******************************************************************************
00215 Functions Prototypes
00216 ******************************************************************************/
00217 
00218 #endif  /* WINDOW_SURFACES_HPP */