Skip to content

Commit edf8960

Browse files
committed
add arm_loader_io_on_frame_start
1 parent c754621 commit edf8960

File tree

4 files changed

+52
-23
lines changed

4 files changed

+52
-23
lines changed

ARM.Arm-2D.pdsc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@
477477
</RTE_Components_h>
478478
</component>
479479

480-
<component Cclass="Acceleration" Cgroup="Arm-2D Extras" Csub="Loaders" Cversion="5.3.6" condition="Arm-2D-Loaders">
480+
<component Cclass="Acceleration" Cgroup="Arm-2D Extras" Csub="Loaders" Cversion="5.3.7" condition="Arm-2D-Loaders">
481481
<description>A helper service for loading various resource, e.g. loading baseline jpg files using TJpgDec, ZJpgDec and loading font files using FreeType etc.</description>
482482
<files>
483483
<file category="include" name="examples/common/loader/" />

examples/common/loader/__arm_2d_loader_common.c

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ size_t __arm_loader_io_window_read( uintptr_t pTarget,
104104
void *ptLoader,
105105
uint8_t *pchBuffer,
106106
size_t tSize);
107+
108+
static
109+
void __arm_loader_io_window_on_frame_start( uintptr_t pTarget,
110+
void *ptLoader);
111+
107112
/*============================ GLOBAL VARIABLES ==============================*/
108113

109114
const arm_loader_io_t ARM_LOADER_IO_FILE = {
@@ -128,10 +133,11 @@ const arm_loader_io_t ARM_LOADER_IO_ROM = {
128133
};
129134

130135
const arm_loader_io_t ARM_LOADER_IO_WINDOW = {
131-
.fnOpen = &__arm_loader_io_window_open,
132-
.fnClose = &__arm_loader_io_window_close,
133-
.fnSeek = &__arm_loader_io_window_seek,
134-
.fnRead = &__arm_loader_io_window_read,
136+
.fnOpen = &__arm_loader_io_window_open,
137+
.fnClose = &__arm_loader_io_window_close,
138+
.fnSeek = &__arm_loader_io_window_seek,
139+
.fnRead = &__arm_loader_io_window_read,
140+
.fnOnFrameStart = &__arm_loader_io_window_on_frame_start,
135141
};
136142

137143
/*============================ LOCAL VARIABLES ===============================*/
@@ -141,7 +147,7 @@ const arm_loader_io_t ARM_LOADER_IO_WINDOW = {
141147
* Invoke Interface *
142148
*----------------------------------------------------------------------------*/
143149

144-
ARM_NONNULL(1)
150+
ARM_NONNULL(1, 3)
145151
bool arm_loader_io_open(const arm_loader_io_t *ptIO,
146152
uintptr_t pTarget,
147153
void *ptLoader)
@@ -158,7 +164,7 @@ bool arm_loader_io_open(const arm_loader_io_t *ptIO,
158164
return ptIO->fnOpen(pTarget,ptLoader);
159165
}
160166

161-
ARM_NONNULL(1)
167+
ARM_NONNULL(1, 3)
162168
void arm_loader_io_close( const arm_loader_io_t *ptIO,
163169
uintptr_t pTarget,
164170
void *ptLoader)
@@ -173,7 +179,7 @@ void arm_loader_io_close( const arm_loader_io_t *ptIO,
173179
ptLoader));
174180
}
175181

176-
ARM_NONNULL(1)
182+
ARM_NONNULL(1, 3)
177183
bool arm_loader_io_seek(const arm_loader_io_t *ptIO,
178184
uintptr_t pTarget,
179185
void *ptLoader,
@@ -192,7 +198,7 @@ bool arm_loader_io_seek(const arm_loader_io_t *ptIO,
192198
return ptIO->fnSeek(pTarget, ptLoader, offset, whence);
193199
}
194200

195-
ARM_NONNULL(1)
201+
ARM_NONNULL(1, 3)
196202
size_t arm_loader_io_read( const arm_loader_io_t *ptIO,
197203
uintptr_t pTarget,
198204
void *ptLoader,
@@ -211,6 +217,20 @@ size_t arm_loader_io_read( const arm_loader_io_t *ptIO,
211217
tSize));
212218
}
213219

220+
ARM_NONNULL(1, 3)
221+
void arm_loader_io_on_frame_start( const arm_loader_io_t *ptIO,
222+
uintptr_t pTarget,
223+
void *ptLoader)
224+
{
225+
ARM_2D_UNUSED(ptLoader);
226+
if (NULL == ptIO) {
227+
return ;
228+
}
229+
230+
ARM_2D_INVOKE_RT_VOID(ptIO->fnOnFrameStart,
231+
ARM_2D_PARAM( pTarget,
232+
ptLoader));
233+
}
214234

215235
/*----------------------------------------------------------------------------*
216236
* IO *
@@ -493,9 +513,11 @@ arm_2d_err_t arm_loader_io_window_init( arm_loader_io_window_t *ptThis,
493513
return ARM_2D_ERR_NONE;
494514
}
495515

496-
ARM_NONNULL(1)
497-
void arm_loader_io_window_on_frame_start(arm_loader_io_window_t *ptThis)
516+
static
517+
void __arm_loader_io_window_on_frame_start(uintptr_t pTarget, void *ptLoader)
498518
{
519+
arm_loader_io_window_t *ptThis = (arm_loader_io_window_t *)pTarget;
520+
499521
assert(NULL != ptThis);
500522

501523
bool bFinished = false;

examples/common/loader/__arm_2d_loader_common.h

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,11 @@ extern "C" {
4444

4545
typedef struct arm_loader_io_t {
4646

47-
bool (*fnOpen) (uintptr_t pTarget, void *ptLoader);
48-
void (*fnClose) (uintptr_t pTarget, void *ptLoader);
49-
bool (*fnSeek) (uintptr_t pTarget, void *ptLoader, int32_t offset, int32_t whence);
50-
size_t (*fnRead) (uintptr_t pTarget, void *ptLoader, uint8_t *pchBuffer, size_t tSize);
47+
bool (*fnOpen) (uintptr_t pTarget, void *ptLoader);
48+
void (*fnClose) (uintptr_t pTarget, void *ptLoader);
49+
bool (*fnSeek) (uintptr_t pTarget, void *ptLoader, int32_t offset, int32_t whence);
50+
size_t (*fnRead) (uintptr_t pTarget, void *ptLoader, uint8_t *pchBuffer, size_t tSize);
51+
void (*fnOnFrameStart)(uintptr_t pTarget, void *ptLoader);
5152

5253
} arm_loader_io_t;
5354

@@ -98,27 +99,33 @@ const arm_loader_io_t ARM_LOADER_IO_WINDOW;
9899
* Invoke Interface *
99100
*----------------------------------------------------------------------------*/
100101
extern
101-
ARM_NONNULL(1)
102+
ARM_NONNULL(1,3)
102103
bool arm_loader_io_open(const arm_loader_io_t *ptIO,
103104
uintptr_t pTarget,
104105
void *ptLoader);
105106

106107
extern
107-
ARM_NONNULL(1)
108+
ARM_NONNULL(1,3)
108109
void arm_loader_io_close( const arm_loader_io_t *ptIO,
109110
uintptr_t pTarget,
110111
void *ptLoader);
111112

112113
extern
113-
ARM_NONNULL(1)
114+
ARM_NONNULL(1,3)
115+
void arm_loader_io_on_frame_start( const arm_loader_io_t *ptIO,
116+
uintptr_t pTarget,
117+
void *ptLoader);
118+
119+
extern
120+
ARM_NONNULL(1,3)
114121
bool arm_loader_io_seek(const arm_loader_io_t *ptIO,
115122
uintptr_t pTarget,
116123
void *ptLoader,
117124
int32_t offset,
118125
int32_t whence);
119126

120127
extern
121-
ARM_NONNULL(1)
128+
ARM_NONNULL(1,3)
122129
size_t arm_loader_io_read( const arm_loader_io_t *ptIO,
123130
uintptr_t pTarget,
124131
void *ptLoader,
@@ -171,10 +178,6 @@ arm_2d_err_t arm_loader_io_window_init( arm_loader_io_window_t *ptThis,
171178
uint16_t hwSize,
172179
uint16_t hwWindowSize);
173180

174-
extern
175-
ARM_NONNULL(1)
176-
void arm_loader_io_window_on_frame_start(arm_loader_io_window_t *ptThis);
177-
178181
extern
179182
ARM_NONNULL(1,2)
180183
void arm_loader_io_window_enqueue( arm_loader_io_window_t *ptThis,

examples/common/loader/generic_loader/arm_2d_generic_loader.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,10 @@ void arm_generic_loader_on_frame_start( arm_generic_loader_t *ptThis)
396396
return ;
397397
}
398398

399+
arm_loader_io_on_frame_start( this.tCFG.ImageIO.ptIO,
400+
this.tCFG.ImageIO.pTarget,
401+
ptThis);
402+
399403
}
400404

401405
ARM_NONNULL(1)

0 commit comments

Comments
 (0)