summaryrefslogtreecommitdiff
path: root/threading.cpp
diff options
context:
space:
mode:
authorFox Caminiti <fox@foxcam.net>2022-07-27 11:00:45 -0400
committerFox Caminiti <fox@foxcam.net>2022-07-27 11:00:45 -0400
commit83ce428d8bb5f4a762abf879adec076bc34cf36a (patch)
treec1500f027d9eec514ba1a2912e7a4763e7be26b2 /threading.cpp
parentc6bd84c356b6aaa029b9708d7b99a4aba1673b6b (diff)
full support for odd-dimension bitmaps and comps
Diffstat (limited to 'threading.cpp')
-rw-r--r--threading.cpp19
1 files changed, 1 insertions, 18 deletions
diff --git a/threading.cpp b/threading.cpp
index 07584bd..39e7b75 100644
--- a/threading.cpp
+++ b/threading.cpp
@@ -7,10 +7,6 @@ PushRect(rectangle RenderRegion)
SDL_SemPost(Semaphore);
}
-internal void
-AVX2_RenderLayer(transform_info TransformInfo, pixel_buffer *Buffer, rectangle RenderRegion);
-internal void
-Fallback_RenderLayer(transform_info TransformInfo, pixel_buffer *Buffer, rectangle RenderRegion);
internal bool32
CheckQueue(render_queue RenderInfo, uint16 Index)
@@ -22,20 +18,7 @@ CheckQueue(render_queue RenderInfo, uint16 Index)
if (__atomic_compare_exchange_n(&NextEntryToDo, &OriginalEntry, NextEntryToDo + 1, true, __ATOMIC_RELEASE, __ATOMIC_ACQUIRE)) {
render_entry *Entry = Entries + OriginalEntry;
Assert(Entry->RenderRegion.Max.x != 0);
- for (int16 i = 0; i < RenderInfo.State->NumberOfLayersToRender; i++) {
- int16 Idx = RenderInfo.State->LayersToRender[i];
-#if ARM
- Fallback_RenderLayer(RenderInfo.File->Layer[Idx]->TransformInfo, RenderInfo.CompBuffer, Entry->RenderRegion);
- // RenderLayerNeon(RenderInfo.File->Layer[Idx], RenderInfo.CompBuffer, Entry->RenderRegion);
-#else
- // printf("(RENDERING) Thread %i, region X%i Y%i\n", Index, Entry->RenderRegion.Min.x/240, Entry->RenderRegion.Min.y/135);
- if (AVXEnabled)
- AVX2_RenderLayer(RenderInfo.File->Layer[Idx]->TransformInfo, RenderInfo.CompBuffer, Entry->RenderRegion);
- else
- Fallback_RenderLayer(RenderInfo.File->Layer[Idx]->TransformInfo, RenderInfo.CompBuffer, Entry->RenderRegion);
-#endif
- }
-
+ RenderLayers(RenderInfo, Entry->RenderRegion);
// printf("(FINISHED) Thread %i, region X%i Y%i\n", Index, Entry->RenderRegion.Min.x/240, Entry->RenderRegion.Min.y/135);
__atomic_add_fetch(&CompletedJobs, 1, __ATOMIC_ACQ_REL);
Result = 1;