C++

1
Eлектронна книга

3D Graphics Rendering Cookbook. A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan

Sergey Kosarevsky, Viktor Latypov

OpenGL is a popular cross-language, cross-platform application programming interface (API) used for rendering 2D and 3D graphics, while Vulkan is a low-overhead, cross-platform 3D graphics API that targets high-performance applications. 3D Graphics Rendering Cookbook helps you learn about modern graphics rendering algorithms and techniques using C++ programming along with OpenGL and Vulkan APIs.The book begins by setting up a development environment and takes you through the steps involved in building a 3D rendering engine with the help of basic, yet self-contained, recipes. Each recipe will enable you to incrementally add features to your codebase and show you how to integrate different 3D rendering techniques and algorithms into one large project. You'll also get to grips with core techniques such as physically based rendering, image-based rendering, and CPU/GPU geometry culling, to name a few. As you advance, you'll explore common techniques and solutions that will help you to work with large datasets for 2D and 3D rendering. Finally, you'll discover how to apply optimization techniques to build performant and feature-rich graphics applications.By the end of this 3D rendering book, you'll have gained an improved understanding of best practices used in modern graphics APIs and be able to create fast and versatile 3D rendering frameworks.

2
Eлектронна книга

Advanced C++. Master the technique of confidently writing robust C++ code

Gazihan Alankus, Olena Lizina, Rakesh Mane, Vivek Nagarajan, ...

C++ is one of the most widely used programming languages and is applied in a variety of domains, right from gaming to graphical user interface (GUI) programming and even operating systems. If you're looking to expand your career opportunities, mastering the advanced features of C++ is key.The book begins with advanced C++ concepts by helping you decipher the sophisticated C++ type system and understand how various stages of compilation convert source code to object code. You'll then learn how to recognize the tools that need to be used in order to control the flow of execution, capture data, and pass data around. By creating small models, you'll even discover how to use advanced lambdas and captures and express common API design patterns in C++. As you cover later chapters, you'll explore ways to optimize your code by learning about memory alignment, cache access, and the time a program takes to run. The concluding chapter will help you to maximize performance by understanding modern CPU branch prediction and how to make your code cache-friendly.By the end of this book, you'll have developed programming skills that will set you apart from other C++ programmers.

3
Eлектронна книга

Advanced C++ Programming Cookbook. Become an expert C++ programmer by mastering concepts like templates, concurrency, and type deduction

Dr. Rian Quinn

If you think you've mastered C++ and know everything it takes to write robust applications, you'll be in for a surprise. With this book, you'll gain comprehensive insights into C++, covering exclusive tips and interesting techniques to enhance your app development process.You'll kick off with the basic principles of library design and development, which will help you understand how to write reusable and maintainable code. You'll then discover the importance of exception safety, and how you can avoid unexpected errors or bugs in your code. The book will take you through the modern elements of C++, such as move semantics, type deductions, and coroutines. As you advance, you'll delve into template programming - the standard tool for most library developers looking to achieve high code reusability. You'll explore the STL and learn how to avoid common pitfalls while implementing templates. Later, you'll learn about the problems of multithreaded programming such as data races, deadlocks, and thread starvation. You'll also learn high-performance programming by using benchmarking tools and libraries. Finally, you'll discover advanced techniques for debugging and testing to ensure code reliability.By the end of this book, you'll have become an expert at C++ programming and will have gained the skills to solve complex development problems with ease.

4
Eлектронна книга

Algorytmy, struktury danych i techniki programowania. Wydanie V

Piotr Wróblewski

Wprowadzenie do algorytmiki Tylko niezbędna teoria Gotowe rozwiązania w C++ Oto kolejne wydanie sprawdzonej, cenionej przez programistów, wykładowców oraz studentów książki, będącej podstawowym podręcznikiem do nauki algorytmiki. Jej autor zapozna Cię z elementarnymi zagadnieniami z tej dziedziny oraz wyjaśni, skąd bierze się tak szybki postęp w tej dyscyplinie nauki. Poznasz podstawowe struktury danych używane do rozwiązywania problemów algorytmicznych oraz nauczysz się je projektować w C++ z użyciem technik obiektowych i klas parametryzowanych. Podczas dalszej lektury poznasz takie pojęcia, jak rekurencja, analiza złożoności oraz algorytmy sortowania i przeszukiwania czy algorytmy numeryczne. Opanujesz metody optymalizacji algorytmów, sposoby kodowania i kompresji danych oraz elementy algorytmiki grafów. Przedstawione tu algorytmy są zilustrowane gotowymi kodami źródłowymi w C++ , co ułatwia zrozumienie poznawanych zagadnień. Przejrzysta forma, praktyczne przykłady oraz przystępny język sprawiają, że książka pozwala szybko i bez trudu opanować zarówno algorytmy, jak i struktury danych oraz najlepsze techniki programowania. Historia algorytmiki Struktury danych i ich implementacja Wprowadzenie do bibliotek STL, czyli algorytmy i struktury danych dla „leniuchów” Analiza złożoności algorytmów Wykorzystanie rekurencji i optymalizacja algorytmów Algorytmy sortowania i przeszukiwania Przeszukiwanie tekstów Zaawansowane techniki programowania Wykorzystanie grafów Algorytmy numeryczne Wprowadzenie do sztucznej inteligencji Kodowanie i kompresja danych Błyskawiczny kurs C++ z uwzględnieniem programowania obiektowego Poradnik kompilacji i uruchamiania programów konsolowych oraz graficznych w darmowych środowiskach IDE (GCC/Dev-C++, Microsoft Visual C++ z pakietu Visual Studio). Szybko i bezboleśnie opanuj wszystkie zagadnienia algorytmiki!

5
Eлектронна книга

Algorytmy, struktury danych i techniki programowania. Wydanie VI

Piotr Wróblewski

Algorytmy i struktury danych - szybko, łatwo, skutecznie! Poznaj najważniejsze algorytmy i techniki programistyczne Naucz się skutecznie wykorzystywać typy i struktury danych Dowiedz się, jak w praktyce zastosować zdobytą wiedzę Algorytmika to dziedzina, która w ciągu ostatnich kilkudziesięciu lat dostarczyła wielu efektywnych narzędzi wspomagających rozwiązywanie różnorodnych zagadnień za pomocą komputera. Dla niektórych stanowi swego rodzaju książkę kucharską, do której sięgają jedynie po wybrane przepisy, a dla innych - pole do rozwinięcia umiejętności skutecznego rozwiązywania problemów i szkołę niestandardowego myślenia. Niezależnie od podejścia jest to dziedzina, z którą wypada się zapoznać, jeśli ma się ambicję zostać zawodowym programistą lub po prostu być osobą nowoczesną i wszechstronnie wykształconą. Ten przewodnik prezentuje szerokie spektrum zagadnień algorytmicznych, najważniejsze informacje na temat struktur danych, technik rekurencyjnych i złożonych metod algorytmicznych. Teoria jest tu poparta przykładowymi programami napisanymi w języku C++, łatwymi do analizy i skompilowania z wykorzystaniem standardowych narzędzi. Autor nie poprzestaje na suchym kodzie, lecz stara się przedstawić praktyczne zastosowanie opisywanych rozwiązań. Podręcznik przyda się zarówno osobom niemającym solidnych podstaw teoretycznych, jak i specjalistom, którzy zawodowo zajmują się programowaniem. Nowe wydanie zostało gruntownie odświeżone i poprawione, a listingi dostosowane do wymagań najnowszych kompilatorów. Książka zawiera opis zasad kompilacji dla środowiska Visual Studio 2017 i kilku wybranych środowisk używających GNU C++ (Dev-C++ i Cygwin). Historia algorytmiki Mechanizm rekurencji Systemy liczbowe i kodowanie Typy i struktury danych Analiza złożoności algorytmów Derekursywacja algorytmów Optymalizacja algorytmów Algorytmy sortowania i wyszukiwania Elementy algorytmiki grafów Sztuczna inteligencja Szyfrowanie i kompresja danych Biblioteka STL Jedyny podręcznik do algorytmiki, którego będziesz potrzebować!

6
Eлектронна книга
7
Eлектронна книга

Android System Programming. Porting, customizing, and debugging Android HAL

Roger Ye

Android system programming involves both hardware and software knowledge to work on system level programming. The developers need to use various techniques to debug the different components in the target devices. With all the challenges, you usually have a deep learning curve to master relevant knowledge in this area. This book will not only give you the key knowledge you need to understand Android system programming, but will also prepare you as you get hands-on with projects and gain debugging skills that you can use in your future projects.You will start by exploring the basic setup of AOSP, and building and testing an emulator image. In the first project, you will learn how to customize and extend the Android emulator. Then you’ll move on to the real challenge—building your own Android system on VirtualBox. You’ll see how to debug the init process, resolve the bootloader issue, and enable various hardware interfaces. When you have a complete system, you will learn how to patch and upgrade it through recovery. Throughout the book, you will get to know useful tips on how to integrate and reuse existing open source projects such as LineageOS (CyanogenMod), Android-x86, Xposed, and GApps in your own system.

8
Eлектронна книга

Application Development with Qt Creator. Build cross-platform applications and GUIs using Qt 5 and C++ - Third Edition

Lee Zhi Eng, Ray Rischpater

Qt is a powerful development framework that serves as a complete toolset for building cross-platform applications, helping you reduce development time and improve productivity. Completely revised and updated to cover C++17 and the latest developments in Qt 5.12, this comprehensive guide is the third edition of Application Development with Qt Creator.You'll start by designing a user interface using Qt Designer and learn how to instantiate custom messages, forms, and dialogues. You'll then understand Qt's support for multithreading, a key tool for making applications responsive, and the use of Qt's Model-View-Controller (MVC) to display data and content. As you advance, you'll learn to draw images on screen using Graphics View Framework and create custom widgets that interoperate with Qt Widgets. This Qt programming book takes you through Qt Creator's latest features, such as Qt Quick Controls 2, enhanced CMake support, a new graphical editor for SCXML, and a model editor. You'll even work with multimedia and sensors using Qt Quick, and finally develop applications for mobile, IoT, and embedded devices using Qt Creator.By the end of this Qt book, you'll be able to create your own cross-platform applications from scratch using Qt Creator and the C++ programming language.

9
Eлектронна книга
10
Eлектронна книга

Architectural Visualization in Unreal Engine 5. Create photorealistic architectural interior renderings in UE5

Ludovico Palmeri

If you excel at creating beautiful architectural renderings using traditional software but want to master real-time, interactive visualizations, this book will show you how the versatile Unreal Engine 5 enables such transformations effortlessly. While UE5 is widely popular, existing online training resources can be overwhelming and often lack a focus on Architectural visualization. This comprehensive guide is for both beginners and experienced users offering a clear, end-to-end approach to creating stunning visualizations from scratch as well as managing tight deadlines, striving for photorealism, and handling typical client revisions inherent to architectural visualization.The book starts with an introduction to UE5 and its capabilities, as well as the basic concepts and principles of architectural visualization. You'll then progress to essential topics such as setting up a project, modeling and texturing 3D assets, lighting and materials, and post-processing effects. Along the way, you'll find practical tips, best practices, and hands-on exercises to develop your skills by applying what you learn.By the end of this book, you'll have acquired the skills to confidently create high-quality architectural visualizations in UE5 and become proficient in building an architectural interior scene to produce professional still images.

11
Eлектронна книга

Architektura oprogramowania bez tajemnic. Wykorzystaj język C++ do tworzenia wydajnych aplikacji i systemów

Adrian Ostrowski, Piotr Gaczkowski

C++ należy do najpopularniejszych i najbardziej cenionych za uniwersalność języków oprogramowania - umożliwia projektowanie rozbudowanych, a zarazem intuicyjnych w obsłudze aplikacji wysokiego poziomu. Pozwala tworzyć wydajną i czytelną architekturę oprogramowania również w wypadku znacznie zaawansowanych systemów i programów. Dzięki tej książce poznasz narzędzia i rozwiązania, które ułatwiają projektowanie w języku C++ nawet najbardziej skomplikowanych aplikacji. Autorzy przybliżają samo pojęcie architektury oprogramowania i na praktycznych przykładach wyjaśniają, na czym polega jej tworzenie. Pokazują również aktualne trendy projektowe i uczą, jak za pomocą C++ krok po kroku, element po elemencie budować aplikacje i systemy na dowolnym poziomie zaawansowania. W trakcie lektury dowiesz się, jakie warunki powinna spełniać efektywna architektura oprogramowania i jak sprawić, by gwarantowała wysoki poziom bezpieczeństwa, skalowalności i wydajności. Liczne przykłady, zrozumiałe objaśnienia i przyjazny język pozwalają na efektywne i szybkie przyswajanie wiedzy dotyczącej tworzenia rozproszonych, skomplikowanych aplikacji w C++. W książce: projektowanie aplikacji bazujących na wydajnej, nowoczesnej i czytelnej architekturze oprogramowania używanie najważniejszych zasad i wzorców projektowych umożliwiających tworzenie efektywnego kodu za pomocą języka C++ analizowanie różnych koncepcji architektury oprogramowania i stosowanie tych, które w największym stopniu odpowiadają danemu projektowi efektywne wykorzystywanie mechanizmów i rozwiązań dostępnych w najnowszej odsłonie języka C++

12
Eлектронна книга

Artificial Intelligence in Unreal Engine 5. Unleash the power of AI for next-gen game development with UE5 by using Blueprints and C++

Marco Secchi

Have you ever wondered how to create engaging gameplay experiences that involve formidable AI opponents, capable of challenging and pushing players to their limits? If the answer is yes, then get ready to enter the realm of AI creation with Unreal Engine 5.Within the pages of this book, written by a brilliant author and game development expert, you’ll find the secrets of Unreal Engine's cutting-edge AI framework. With this newfound knowledge, you’ll be able to create immersive and dynamic gaming experiences. This step-by-step guide will teach you the art of crafting intelligent and responsive virtual opponents that challenge and engage players on a whole new level. As you follow along with practical examples, the book will guide you through the creation of fully functional AI systems. You’ll be able to harness the power of behavior trees, NavMesh systems, and sensory perception models, breathing life into your virtual characters.By the end of this book, you’ll be equipped with the knowledge you need to unleash the full potential of AI in Unreal Engine. Get ready to revolutionize your gaming creations and captivate players with AI-driven wonders that push the boundaries of what's possible!

13
Eлектронна книга

Asynchronous Programming with C++. Build blazing-fast software with multithreading and asynchronous programming for ultimate efficiency

Javier Reguera-Salgado, Juan Antonio Rufes

As hardware advancements continue to accelerate, bringing greater memory capacity and more CPU cores, software must evolve to adapt to efficiently use all available resources and reduce idle CPU cycles. In this book, two seasoned software engineers with about five decades of combined experience will teach you how to implement concurrent and asynchronous solutions in C++.You’ll gain a comprehensive understanding of parallel programming paradigms—covering concurrent, asynchronous, parallel, multithreading, reactive, and event-driven programming, as well as dataflows—and see how threads, processes, and services are related. Moving into the heart of concurrency, the authors will guide you in creating and managing threads and exploring C++’s thread-safety mechanisms, including mutual exclusion, atomic operations, semaphores, condition variables, latches, and barriers. With this solid foundation, you’ll focus on pure asynchronous programming, discovering futures, promises, the async function, and coroutines. The book takes you step by step through using Boost.Asio and Boost.Cobalt to develop network and low-level I/O solutions, proven performance and optimization techniques, and testing and debugging asynchronous software.By the end of this C++ book, you’ll be able to implement high-performance software using modern asynchronous C++ techniques.

14
Eлектронна книга

AUTOSAR Fundamentals and Applications. Establishing a solid foundation for automotive software design with AUTOSAR

Hossam Soffar

AUTOSAR has become the standard for developing automotive ECUs, driven by the demand for increasingly sophisticated features that require a robust, safe, secure, and scalable framework for efficient development for automotive software. For those new to AUTOSAR, its complexity, intricate architecture, and extensive standards can be daunting. With twelve years of experience in the automotive software industry, Hossam Soffar brings his unparalleled expertise to this essential AUTOSAR guide, addressing these challenges by explaining AUTOSAR's framework, architecture, and their application through best practices and real-world use cases.This book comprehensively explores AUTOSAR’s objectives, guiding you through its layered architecture and various stacks, components, and communication mechanisms. You’ll learn how to design, configure, and integrate AUTOSAR Basic Software (BSW) components, understand the real-time-environment (RTE), and master the principles of communications, diagnostics, security, and operating systems, all of which is essential for developing high-quality, safety-critical, and efficient ECUs. With a clear understanding of how these elements work together, you'll be equipped to navigate the complexities of modern automotive software development to build, implement, and manage automotive systems with enhanced efficiency.

15
Eлектронна книга

Beginning C++ Game Programming. Learn C++ from scratch by building fun games - Third Edition

John Horton

Always dreamed of creating your own games? With the third edition of Beginning C++ Game Programming, you can turn that dream into reality! This beginner-friendly guide is updated and improved to include the latest features of VS 2022, SFML, and modern C++20 programming techniques. You'll get a fun introduction to game programming by building four fully playable games of increasing complexity. You'll build clones of popular games such as Timberman, Pong, a Zombie survival shooter, and an endless runner.The book starts by covering the basics of programming. You'll study key C++ topics, such as object-oriented programming (OOP) and C++ pointers and get acquainted with the Standard Template Library (STL). The book helps you learn about collision detection techniques and game physics by building a Pong game. As you build games, you'll also learn exciting game programming concepts such as vertex arrays, directional sound (spatialization), OpenGL programmable shaders, spawning objects, and much more. You’ll dive deep into game mechanics and implement input handling, levelling up a character, and simple enemy AI. Finally, you'll explore game design patterns to enhance your C++ game programming skills.By the end of the book, you'll have gained the knowledge you need to build your own games with exciting features from scratch.

16
Eлектронна книга

Beginning C++ Game Programming. Learn to program with C++ by building fun games - Second Edition

John Horton

The second edition of Beginning C++ Game Programming is updated and improved to include the latest features of Visual Studio 2019, SFML, and modern C++ programming techniques. With this book, you’ll get a fun introduction to game programming by building five fully playable games of increasing complexity. You’ll learn to build clones of popular games such as Timberman, Pong, a Zombie survival shooter, a coop puzzle platformer and Space Invaders.The book starts by covering the basics of programming. You’ll study key C++ topics, such as object-oriented programming (OOP) and C++ pointers, and get acquainted with the Standard Template Library (STL). The book helps you learn about collision detection techniques and game physics by building a Pong game. As you build games, you’ll also learn exciting game programming concepts such as particle effects, directional sound (spatialization), OpenGL programmable shaders, spawning objects, and much more. Finally, you’ll explore game design patterns to enhance your C++ game programming skills.By the end of the book, you’ll have gained the knowledge you need to build your own games with exciting features from scratch.