mirror of https://github.com/stella-emu/stella.git
From Thomas Jentzsch: include main thread in blargg.
This commit is contained in:
parent
80e715fd6d
commit
910fb59a55
|
@ -87,17 +87,21 @@ void AtariNTSC::render(const uInt8* atari_in, const uInt32 in_width,
|
||||||
void AtariNTSC::render(const uInt8* atari_in, const uInt32 in_width, const uInt32 in_height,
|
void AtariNTSC::render(const uInt8* atari_in, const uInt32 in_width, const uInt32 in_height,
|
||||||
void* rgb_out, const uInt32 out_pitch, uInt32* rgb_in)
|
void* rgb_out, const uInt32 out_pitch, uInt32* rgb_in)
|
||||||
{
|
{
|
||||||
// Spawn the threads...
|
// spawn myNumThreads - 1 threads...
|
||||||
for(uInt8 i = 0; i < myNumThreads; i++)
|
for (uInt32 i = 1; i < myNumThreads; i++)
|
||||||
myThreads[i] = std::thread([=] {
|
myThreads[i] = std::thread([=] {
|
||||||
renderWithPhosphorThread(atari_in, in_width, in_height, myNumThreads, i,
|
rgb_in == NULL ? renderThread(atari_in, in_width, in_height, myNumThreads, i, rgb_out, out_pitch) :
|
||||||
rgb_in, rgb_out, out_pitch);
|
renderWithPhosphorThread(atari_in, in_width, in_height, myNumThreads, i, rgb_in, rgb_out, out_pitch);
|
||||||
});
|
});
|
||||||
|
// make the main thread busy too
|
||||||
|
rgb_in == NULL ? renderThread(atari_in, in_width, in_height, myNumThreads, 0, rgb_out, out_pitch) :
|
||||||
|
renderWithPhosphorThread(atari_in, in_width, in_height, myNumThreads, 0, rgb_in, rgb_out, out_pitch);
|
||||||
// ...and make them join again
|
// ...and make them join again
|
||||||
for(uInt8 i = 0; i < myNumThreads; i++)
|
for (uInt32 i = 1; i < myNumThreads; i++)
|
||||||
myThreads[i].join();
|
myThreads[i].join();
|
||||||
|
|
||||||
// Copy phosphor values into out buffer
|
// Copy phosphor values into out buffer
|
||||||
|
if (rgb_in != NULL)
|
||||||
memcpy(rgb_out, rgb_in, in_height * out_pitch);
|
memcpy(rgb_out, rgb_in, in_height * out_pitch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue