TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
Para||elix — платформа демосцены

18 Mar 2023, 11:57

Telegram'da ochish Ulashish Shikoyat qilish

Многопоточный код в прототипах теперь тоже работает 🔥
Прототип немного быстрее.

По линиям (1250 vs 1200 fps):

#include "config.h"
#include "api_impl.h"

extern "C" int __stdcall ParallelixMainExW(void*, const wchar_t*);

void __stdcall draw_pixel(uint32_t thread_index, uint32_t y, uint32_t x, uint32_t group_size, PixelPointer pixel_addr, uint32_t spec_value, ServiceData* service_data)
{
for (uint32_t limit = x + group_size; x < limit; ++x) {
*pixel_addr.pixel8bpp++ = static_cast(((x ^ y) + spec_value) >> 4);
}
}

void __stdcall intro(ServiceData* service_data)
{
using namespace api;
exported::InitVideo({ InitVideoOptions::ColorMode::palette_8bpp, VideoMode::default_full, 0,
InitVideoOptions::use_video_mode, InitVideoOptions::LineAlignment::align_default });
for (int i = 0; ; ++i) {
// 15 = group by lines
exported::ParallelPixels({ 15, ParallelPixelsOptions::ImageSizeType::screen_resolution, true }, draw_pixel, {}, i);
exported::DisplayFrame({ true });
}
}

int main()
{
ParallelixMainExW(intro, L". -kc -fr");
}

По 1 пикселю (800 vs 780 fps):

#include "config.h"
#include "api_impl.h"

extern "C" int __stdcall ParallelixMainExW(void*, const wchar_t*);

void __stdcall draw_pixel(uint32_t thread_index, uint32_t y, uint32_t x, uint32_t group_size, PixelPointer pixel_addr, uint32_t spec_value, ServiceData* service_data)
{
*pixel_addr.pixel8bpp = static_cast(((x ^ y) + spec_value) >> 4);
}

void __stdcall intro(ServiceData* service_data)
{
using namespace api;
exported::InitVideo({ InitVideoOptions::ColorMode::palette_8bpp, VideoMode::default_full, 0,
InitVideoOptions::use_video_mode, InitVideoOptions::LineAlignment::align_default });
for (int i = 0; ; ++i) {
// 0 = group by 1 pixel (0 > 4);
}
}

void __stdcall intro(ServiceData* service_data)
{
using namespace api;
exported::InitVideo({ InitVideoOptions::ColorMode::palette_8bpp, VideoMode::default_full, 0,
InitVideoOptions::use_video_mode, InitVideoOptions::LineAlignment::align_64b });
for (int i = 0; ; ++i) {
// 6 = group by 64 pixels (1

40 0 1
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot